Java 适配器设计模式-方法调用或构造函数中的依赖关系?
这个例子是精心设计的,所以请容忍我 我有两个Java类,Java 适配器设计模式-方法调用或构造函数中的依赖关系?,java,design-patterns,adapter,Java,Design Patterns,Adapter,这个例子是精心设计的,所以请容忍我 我有两个Java类,Chair和Desk,它们来自第三方(即,我无法更改它们) 对于这些类中的每一个,我都需要运行一个方法,doWork(),它依赖于DatabaseService。我的方法是创建一个适配器,为每个类实现OfficeFurniture接口 public class ChairAdapter implements OfficeFurniture { //... } public class DeskAdapter implements Of
Chair
和Desk
,它们来自第三方(即,我无法更改它们)
对于这些类中的每一个,我都需要运行一个方法,doWork()
,它依赖于DatabaseService
。我的方法是创建一个适配器,为每个类实现OfficeFurniture
接口
public class ChairAdapter implements OfficeFurniture {
//...
}
public class DeskAdapter implements OfficeFurniture {
//...
}
public interface OfficeFurniture {
public doWork(DatabaseService databaseService);
}
最后,问题是:在
doWork()
调用中传递DatabaseService
更好,还是在ChairAdapter
和deskapter
的构造函数中传递它,并在类字段中存储实例更好?或者还有其他更好的方法吗?如果数据库服务
类是一个单例,或者每个适配器
类只需要实例化一次,然后传递给构造函数;特别是如果在每个适配器类中有多个方法将使用数据库服务实例。如果在调用之间发生变化,则将其传递到方法。这取决于适配器的客户端是否了解数据库服务?可能不是,所以你把它放在构造函数中。如果客户必须了解有关数据库服务的一些信息,那么传递它会更好。您找到了一个可接受的答案吗?
public class ChairAdapter implements OfficeFurniture {
//...
}
public class DeskAdapter implements OfficeFurniture {
//...
}
public interface OfficeFurniture {
public doWork(DatabaseService databaseService);
}