繁体   English   中英

适配器设计模式 - 方法调用或构造函数中的依赖项?

[英]Adapter design pattern - dependencies in method calls or constructors?

这个例子非常人为,所以请耐心等待。

我有两个Java类, ChairDesk ,来自第三方(即我无法更改它们)。

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 ,或者在ChairAdapterDeskAdapter的构造函数中传递它并在类字段中存储实例是否更好? 还是有另一种更好的方法吗?

这取决于适配器的客户端是否知道有关数据库服务的任何信息? 可能不是,所以你把它放在构造函数中。 如果客户端必须知道有关数据库服务的信息,那么传递它会更好。

如果DatabaseService类是单例,或者只需要为每个Adapter类实例化一次,那么传入构造函数; 特别是如果每​​个Adapter类中有多个方法将使用DatabaseService实例。 如果它在调用之间发生变化,则将其传递给方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM