读书人

实例化对象之后的使用有关问题

发布时间: 2012-06-15 19:37:05 作者: rapoo

实例化对象之后的使用问题
A,B,C,D E,F三类,在类E对条件信息进行判断来选择实例化A,B,C,D其中的一个类,在F中使用E中实例化的对象,如何操作?

[解决办法]
按照依赖倒置原则,F应该只使用公共的接口方法和属性,不使用ABCD类的特有的方法和属性,

E作为工厂类,创建实例后应该把接口引用传给F,或者说F调用E类的工厂方法获得接口引用,

探讨

你好,你的意思是我定义一个接口,A,B,C,D均继承自此接口,这样就避免了实例化对象不定的问题,但是我在E中实例化接口后,F中如何调用该实例化的属性的方法呢?

[解决办法]
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();        }    }} 

读书人网 >C#

热点推荐