【发布时间】:2019-07-27 12:18:17
【问题描述】:
我有一个关于 DIP 原则的问题。其中一条指导方针说我们不应该持有对具体类的引用(如果它发生变化,那么我将不得不修改所有使用它的客户端)。那么,当我使用 POJO 时,我可以遵循这个准则吗?例如:
我有一个带有一些属性的 Bean 'Foo'(它可以表示一个域对象)
class Foo {
private String one;
private String two;
//getters and setters
}
多个客户端实例化此对象,例如,将其保存在数据库中
class Client1 {
private FooDao dao;
Client1(FooDao dao){
this.dao = dao;
}
public void persist() {
//hard coding
Foo foo = new Foo();
foo.setOne("something...");
dao.save(foo); }
}
class Client2 {
private FooDao dao;
Client2(FooDao dao){
this.dao = dao;
}
public void persist() {
Foo foo = new Foo();
foo.setOne("something...");
foo.setTwo("something...")
dao.save(foo);
}
}
如果我向 'Foo' 类添加或更改任何属性,每个客户都必须更改,那么遵循本指南如何避免这种情况?
谢谢!
【问题讨论】:
-
区分数据类(类似于 C 中的结构)和服务类(通常应该实现一些接口)是有用的。请注意,您在此处显示的 活动记录 模式存在一些基本问题,并且在 Java 中通常不使用。
标签: java oop design-patterns object-oriented-analysis