让我们假设您拥有A级和B级。 这两个类都有一个私有变量:
private Store _store {get;set}
class Class A
{
private Store _store {get;set}
constructor()
{
init(param1,param2,..);
}
init(param1,param2,..)
{
//logic to initialize _store
}
}
class Class B
{
private Store _store {get;set}
constructor()
{
init(param1,param2,..);
}
init(param1,param2,..)
{
//logic to initialize _store
}
}
问题:重复的init()
代码
我的解决方案:
StoreFactory
方法创建一个Init
类,该类将返回一个Store实例。有没有第三种方法可以做到这一点?也许使用依赖注入容器Unity? 我也想知道实现此目标的任何其他方式。有或没有团结。
答案 0 :(得分:0)
我会避免继承。与继承相比,从长远来看,作曲可能更易于维护,因此,我更喜欢工厂化方法或向类中注入一些服务。
另一种方法是将Init
方法作为Store
类定义的一部分。并将Store
类注入到Class A
和B
的构造函数中( Unity 将负责连接)。
然后,您可以调用Init
的{{1}}方法,而不必依赖于在要使用商店的每个类中注入工厂。