首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪种设计更好?[MainClass] -> [Class]或[MainClass] -> [MiddleClass] -> [Class]

哪种设计更好?[MainClass] -> [Class]或[MainClass] -> [MiddleClass] -> [Class]
EN

Software Engineering用户
提问于 2014-12-24 18:28:50
回答 1查看 111关注 0票数 0

我有两个设计可以达到相同的效果。

代码语言:javascript
复制
-------Design A

MainClass有一个列表和两个方法。这些方法创建一个自治对象并添加到列表中。超类的原因,B和C是相似的,我将添加更多的子类。此外,我还可以利用后面的多态性。

代码语言:javascript
复制
-------Design B

mainclass有两种方法。该方法使用MiddleClass创建聚合链接,并直接调用Mainclass方法,后者返回b/c类的自治对象。

不太可能的A,B受益于来自MainClass的更高程度(松散)耦合,其中middleclass处理从继承层次结构到主类的信息--当然,我添加的子类越多,主类就不会有到层次结构的任何附加链接,而是全部由中间层处理。

然而,我不确定我是只是过度设计,还是它是一个更好的设计。你们认为什么是更好的设计,为什么?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-12-24 19:19:41

在这两种设计中,MainClass都必须了解ClassBClassC (以及任何未来的派生类),以提供创建和添加新列表元素的方法。这使得在MainClass用户当前的界面下,第一个设计是最简单的设计,也是两者中最好的一个。

但是,可以通过将MainClassMiddleClass解耦来创建更好的设计。

MainClass只需要提供一个方法来向列表中添加(已经创建)项。

MiddleClass实际上是一个工厂类,正如注释中已经指出的那样,应该使用户可以使用它来创建应该添加到列表中的项。

这样,如果向层次结构中添加了新的类,则不需要更新MainClass,而只需要更新MiddleClass

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/267321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档