关于设计模式中的组合问题?(20分)

  • 主题发起人 主题发起人 oer_2001
  • 开始时间 开始时间
O

oer_2001

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个类:车:车牌号,车重;物品:品名,重量
这两个组成一个大类为:重车:车牌号,品名,毛重(车.车重+物品.重量)
怎么实现?
 
搞个新类:
重车:车牌号,品名,毛重(车.车重+物品.重量)
哈哈,帮你顶
 
重车继承于车,再实现一个装载得接口,物品做参数
 
车:类class A,属性 车重 为虚拟
物品: 类class B
重车: 类 class C 继承于class A,
在private 内 放入 属性 b:B 以组合A,B
重载 属性 车重
品名 属性的Get,Set操作委托给b属性完成

 
设计模式有一条原则:先使用组合,而后再想用继承。
 
抓本质,有些东西得符合客观,重车本质就是车,为什么还要用组合呢?
 
个人认为:
1、为“物品”实现一个空类(重量、体积为0的物品)
2、为“车”增加一个属性,缺省为载有空物品
3、此时,不必增加新类,“重车”即为载有真实物品的“车”
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部