- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个会计应用程序,并且不清楚如何为供应商建模。在我的业务领域中,卖方定义为销售产品或提供服务的个人或企业。人与公司之间的主要区别在于,人有名字,中间名和姓氏,而公司只有一个名字。
厂商似乎应该两者兼而有之,但是我的编程语言Delphi不允许多重继承。有没有一种方法可以创建一个或/或继承关系,或者我是否在模型中包括每个名称属性,以及一个将“人,事”作为值的“类型”属性?
最佳答案
如果您说Person
始终是Vendor
的一种,而Business
始终是Vendor
的一种,则永远不会有Person
的实例,而该实例又不是Vendor
的实例,并且永远不能有既不是Business
实例又Vendor
的实例。那不行
让我们尝试反转层次结构。如果您说Vendor
始终是Person
和Business
的一种,则Vendor
的实例如果不同时是Person
和Business
,就不能存在。那也不行。
这里不对劲!
输入角色。通常,Role
由Actor
播放。就您而言,Actor
可以是Person
或Business
。 Vendor
是其中一个Role
播放的Actors
。哎呀,您甚至可以使Actors
的两个子类覆盖并且不相交,这意味着您不能拥有既不是Actor
实例也不是Person
实例的Vendor
实例,并且该实例不能是Person
和Vendor
。
角色给您很大的灵活性。例如,您可以有一个Person
相对于两个不同的Vendor
扮演另一个Buyers
的角色。角色也可以随时间变化,包括开始时间和结束时间。因此,我认为一个角色就是您要寻找的解决方案。
关于delphi - 如何为来自两个潜在类别的类别建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33906878/
我是一名优秀的程序员,十分优秀!