首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在您的应用程序中有许多抽象类可以吗?

在您的应用程序中有许多抽象类可以吗?
EN

Software Engineering用户
提问于 2011-09-06 10:04:07
回答 4查看 1.1K关注 0票数 9

我们最初希望在commmon接口中实现各种方法的策略模式。这些信息将在运行时根据用户输入得到。

事实证明,我们有实现3-5个通用方法的抽象类,并且只剩下一个用于不同实现的方法,即策略。

更新:许多抽象类,我的意思是有6个不同的高级功能,即6个包,每个都有它的接口+ AbstractImpl +(一系列实际的Impl)。

这有什么不好的设计吗?

在以后的扩展性方面,任何负面的观点--我正在准备与老年人一起进行代码/设计评审。

EN

回答 4

Software Engineering用户

回答已采纳

发布于 2011-09-06 10:09:01

不,这绝不是一个糟糕的设计。这是一个模板法模式

它旨在封装算法步骤的不同行为,这在您的场景中可能是这样的。在许多情况下,策略和模板方法模式形成了很强的组合。您可能有抽象的策略作为框架,并且使用模板方法模式来进行具体的策略。很干净。

它是可扩展的,而且不需要重复代码。当您需要完全不同的东西时,只需使用策略接口来创建一个新的抽象或具体的策略。

票数 8
EN

Software Engineering用户

发布于 2011-09-06 10:09:03

不,它可以是相当好(取决于细节-这是很难说更多关于你的具体情况的知识)。在抽象基类中统一通用方法实现是非常好的。

根据类中使用单个抽象方法的方式,这种模式可能是模板法而不是策略。也就是说,如果它是由基类中的其他方法调用的,而不是由外部世界直接调用的。

票数 4
EN

Software Engineering用户

发布于 2011-11-24 13:17:23

模板方法模式使子类通过抽象方法实现特殊的代码,子类继承超类的通用方法。所以我不认为这有很多抽象类,它只是一个抽象类,所有的子类都是实例类。

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

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

复制
相关文章

相似问题

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