[英]Adapter design pattern - dependencies in method calls or constructors?
这个例子非常人为,所以请耐心等待。
我有两个Java类, Chair
和Desk
,来自第三方(即我无法更改它们)。
public class Chair {
//...
}
public class Desk {
//...
}
对于每个类,我需要运行一个依赖于DatabaseService
的方法doWork()
。 我的方法是创建一个适配器,为每个类实现OfficeFurniture
接口。
public class ChairAdapter implements OfficeFurniture {
//...
}
public class DeskAdapter implements OfficeFurniture {
//...
}
public interface OfficeFurniture {
public doWork(DatabaseService databaseService);
}
最后,问题是:在doWork()
调用中传递DatabaseService
,或者在ChairAdapter
和DeskAdapter
的构造函数中传递它并在类字段中存储实例是否更好? 还是有另一种更好的方法吗?
这取决于适配器的客户端是否知道有关数据库服务的任何信息? 可能不是,所以你把它放在构造函数中。 如果客户端必须知道有关数据库服务的信息,那么传递它会更好。
如果DatabaseService
类是单例,或者只需要为每个Adapter
类实例化一次,那么传入构造函数; 特别是如果每个Adapter
类中有多个方法将使用DatabaseService
实例。 如果它在调用之间发生变化,则将其传递给方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.