【发布时间】:2013-11-05 16:21:02
【问题描述】:
我浏览了许多关于 OOP 原则的教程和博客。 当我了解松散耦合和编写可测试类时,有一件事我犹豫不决。
假设我有一个 Lake 课程。 Lake 类具有注入的依赖项,例如天气和位置(策略模式等),但它会创建返回的类,比如鱼。
所以函数 catch() 返回 Fish 类。
它是紧耦合的吗,因为鱼类有一个也需要“单元测试”的构造函数?
【问题讨论】:
标签: oop
我浏览了许多关于 OOP 原则的教程和博客。 当我了解松散耦合和编写可测试类时,有一件事我犹豫不决。
假设我有一个 Lake 课程。 Lake 类具有注入的依赖项,例如天气和位置(策略模式等),但它会创建返回的类,比如鱼。
所以函数 catch() 返回 Fish 类。
它是紧耦合的吗,因为鱼类有一个也需要“单元测试”的构造函数?
【问题讨论】:
标签: oop
如果您直接在类中实例化 Fish 对象,例如
新鱼();
那么这两个类之间存在紧密耦合。如果 Fish 不仅仅是一个简单的数据传输对象(一个只携带数据而几乎没有逻辑的对象),那么我会避免这种紧密耦合。
有几种方法可以解决这个问题,例如:
但是,如果 Fish 只是一个简单的 DTO,那么在复杂性、可读性和性能方面是否值得付出努力是值得怀疑的。
希望这会有所帮助。
【讨论】: