java - 将对象拆分为最基本的部分

标签 java oop object ooad

不确定标题是否捕获了我在这里想表达的意思。

在 OO 中进行设计时,我是否应该将我的对象拆分到它们最具体的区域 - 所以如果我有一个处理创建对象的工厂对象,但后来我遇到了一种为另一个目的创建对象的方法,即使它们可能是相同的对象是否值得创建一个单独的 fcatory 或只是添加到现有的。

我最担心的是用大量的东西来增加类,或者拆分对象并将我的项目稀释成类的海洋。

有什么帮助吗?

编辑:

我想在旁注/子主题中,我的一部分想找出您应该在程序中使用的粒度级别。有点,你应该降到多低?

最佳答案

My biggest worry is bulking up classes with tons of stuff, or splitting objects and diluting my projects into a sea of classes

这是一个非常有道理的观点,在任何规模适中的项目中,都很难预先做好,尤其是因为实际上,在大多数情况下,需求本身会随着时间的推移而变化。 这就是“重构”的用武之地。您可以根据您在任何给定时间点知道的内容进行设计,并且尽量不要对您认为系统可能会演变成什么做出太多的信仰飞跃。

假设您知道您现在正在构建什么,您设计您的类时会尽量充分利用 OO 概念 - 例如封装/多态性。正如其他人也指出的那样,这本身就是众所周知的难以实现,而这正是设计 OO 系统和领域知识方面的经验真正派上用场的地方。

根据您所知道的进行设计 --> 构建它 --> 审查它 --> 重构它 --> 重新设计 --> 并不断地进行..

关于java - 将对象拆分为最基本的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4053077/

相关文章:

java - 我应该使用什么直接 FK 字段或实体对象?

c++ - 是否可以从抽象类构造函数中调用虚方法?

java - 对于类中的方法,哪种 OOP 设计更好

java - 创建对象: Exception Caught in onSaveCompleted

java - EJB 中@Stateless 相对于@Singleton 的真实用例是什么

java - 带 SSL 的 RMI : Failed handshake

使用具有不匹配变量的类的 Python 多重继承

function - 您从 Rebol2 中的对象/函数上的 THIRD 获得的未记录 block 是什么?

c# - 使用 foreach 循环显示对象

Java:收据打印机自动切割