我有这个班级模型,银行是一个现在正在进入计算机化银行网络的班级.这必须有ATM(自动柜员机)和人员收银员. 我使用了Generalization并使用了一个名为AccountHandlers的类来继承Bank类.此Accou
我使用了Generalization并使用了一个名为AccountHandlers的类来继承Bank类.此AccountHandler还汇总了ATM和HumanCashier.
现在问题是,我的朋友在争辩说我把整件事弄错了.根据他的说法,AccountHandlers必须汇总到Bank,而ATM和HumanCashier必须继承到AccountHandlers.
我有点困惑.我该如何塑造!!或者这两种方法都正确吗?
我会回到基础.您应该问自己ATM是否是AccountHandler,或者AccountHandler是否有ATM.这应该给你一个关于使用继承或组合的问题的一般答案.
两者都是正确的.只有一个是好的设计,这取决于您的应用程序尝试做什么.
通常,有一条经验法则(取自Effective Java),表明你应该支持组合而不是继承.拿一粒盐,确保你正确地设计你的应用程序. (有关详细信息,请参阅Prefer composition over inheritance?)