Nag*_*tri 4 oop uml class-design
我有这个班级模型,银行是一个现在正在进入计算机化银行网络的班级.这必须有ATM(自动柜员机)和人员收银员.
我使用了Generalization并使用了一个名为AccountHandlers的类来继承Bank类.这AccountHandlers进一步有ATM和HumanCashier聚集到它.
现在问题是,我的朋友在争辩说我把整件事弄错了.据他介绍AccountHandlers必须汇总到银行和ATM和HumanCashier必须继承到AccountHandlers.
我有点困惑.我该如何塑造!! 或者这两种方法都正确吗?
我会回到基础.
你应该问自己一个ATM 是一个 AccountHandler,还是一个AccountHandler 有 ATM.这应该给你一个关于使用继承或组合的问题的一般答案.
两者都是正确的.只有一个是好的设计,这取决于您的应用程序尝试做什么.
通常,有一条经验法则(取自Effective Java),它表明你应该支持组合而不是继承.拿一粒盐,确保你正确地设计你的应用程序.(有关更多信息,请参阅首选组合而不是继承?)
通常,继承(或特化)用于建模" is-a "关系,而聚合/组合用于" has-a "关系.
现在您可以问自己哪一个是正确的:
在我看来,大胆的陈述是正确的.因此,您应该将银行 - >帐户处理程序的聚合或组合用于帐户处理程序 - >人工收银员的继承.
| 归档时间: |
|
| 查看次数: |
629 次 |
| 最近记录: |