实例化对象之后的使用问题
A,B,C,D E,F三类,在类E对条件信息进行判断来选择实例化A,B,C,D其中的一个类,在F中使用E中实例化的对象,如何操作?
[解决办法]
按照依赖倒置原则,F应该只使用公共的接口方法和属性,不使用ABCD类的特有的方法和属性,
E作为工厂类,创建实例后应该把接口引用传给F,或者说F调用E类的工厂方法获得接口引用,
[解决办法]
- C# code
public interface I{ void Work();}public class A : I{ public void Work(){}}public class B : I{ public void Work(){}}public class C : I{ public void Work(){}}public class D : I{ public void Work(){}}public class E{ public static I CreateInstance() { switch(条件) { case 条件1: return new A(); case 条件2: return new B(); case 条件3: return new C(); case 条件4: return new D(); default: return null; } }}public class F{ I _instance; public F() { _instance = E.CreateInstance(); } public void Work() { if(_instance != null) { _instance.Work(); } }}