|
|
1
3
如果我理解的正确的话,你的选项1接近于好的。一个顾客和一本书是两个完全不同的东西。您希望将该数据/功能分开,并且不应继承自任何公共基类(您已经创建的)。 正如“骗子”所说: 我在我的UI之后构建我的类,并且有复制粘贴 .
在需要处理客户和书籍的页面上,您将使用 顾客 对象和 书 对象,可能是 书 集合对象。根据DB/对象模型的设置方式,您可能需要处理其他对象,以便从客户那里得到他们购买的书籍。例如,客户可能同时购买一本或多本书,这些书与 秩序 对象,它具有对客户的引用。所以,你可能会从
这些都不需要互相继承。现在,让我们假设让客户购买所有的书是你做了很多事情,并且你想要简化。然后,您希望有一个直接来自客户的图书集合,它提供了这一点,尽管用于获取这些图书的SQL查询仍然通过数据库中的订单进行。你 必须 从对象模型(以及幕后的表)开始 准确反映现实 . 即使这给了你很多课程 更简单 最后。你可能会得到一些遗产,但你可能不会。 |
|
|
2
1
我会避免2和3,因为它将你锁定在一个限制性的层次结构中,而这个层次结构并不能真正满足你的需求。正如您所指出的,可能有任何您想要的东西的组合,例如客户和他们的书,也许他们的地址,也许他们的订购历史。或者你可能会想要一本有顾客名单的书。由于您的基础业务信息不是真正的层次结构,所以您应该尽量避免使对象模型具有不必要的层次结构。否则,你会建立一些限制,在以后会引起很多头痛,因为你现在不能想到所有的场景。 我觉得你和1的关系是对的。我要说为客户和书籍创建一些基本类,然后创建一个包含客户和书籍实例的CustomerBook关联类。然后,您可以让您的方法担心如何将给定场景的数据加载到该列表中。 |
|
|
3
0
我会把地址写进去
这样,A
|
|
|
4
0
从面向对象设计(OOA&D)的角度来看,您是在向后设计。在持久性(通常是关系数据库)层使用数据驱动设计是正常的。但在OOA&D中,考虑对象将发送和接收的消息更为正常(建模对象的方法而不是其成员)。我会这样想:
|
|
|
5
0
我认为您的问题是实现数据映射层的一个问题。 您可以使用连接进行高性能的查询,从而返回客户及其书籍。 映射层将此映射到适当的唯一对象中,并负责为对象创建正确的多个聚合。 此外,还可以满足浅加载、显示属性保存不必要的数据量,以便在每个对象只需要几个属性的情况下进行传输。 |
|
|
simply lemon · python上链表的添加方法 2 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 2 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 2 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 2 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 2 年前 |