用的C#;
比如有個abstract class叫item,其他兩個類classA和classB都繼承item;
使用工廠模式創(chuàng)建一個對象,新建的這個對象是item類,我能通過obj.getType().Name方法判斷這個類實際上是classA還是classB;
在我知道這個類實際上是classA還是classB之后,如果想使用classA或者classB他們自己的方法,我應(yīng)該怎么辦?
剛開始接觸設(shè)計模式這些知識,還希望各位給一些建議!
面向?qū)ο蟮奶匦允?抽象 封裝 繼承 多態(tài)
如果A和B有完全不同且和item無關(guān)的方法 應(yīng)該使用接口實現(xiàn)
abstract?class?item?{?}?interface?IclassA?{?void?a();?}?interface?IclassB?{?void?b();}?class?classA?:?item,?IclassA?{?public?void?a()?{?throw?new?NotImplementedException();?}?}?class?classB?:?item,?IclassB?{?public?void?b()?{?throw?new?NotImplementedException();?}?} item?item?=?new?classA();?if?(item?is?IclassA)?{?var?itemA?=?item?as?IclassA;?itemA.a();?}