日期:2014-05-18  浏览次数:20447 次

《软件设计精要与模式》抽象类的一点不明白,大家指教
刚在看《软件设计精要与模式》中
        public   abstract   class   LogFactory
        {
                public   abstract   Log   Create();                
        }

其中Log是一个类
        public   abstract   class   Log
        {
                public   abstract   void   Write(string   target,   string   logValue);
        }
对LogFactory里面的
public   abstract   Log   Create();  
这个有点不明白,大家指点一下。
(今天先下班,明天结贴)              


------解决方案--------------------
这是所谓的抽象工厂或工厂方法模式

LogFactory类拥有一个抽象方法,这个方法返回一个Log对象。具体的LogFactory子类会实现这个方法,你的客户端代码大概会通过配置文件或依赖注入来获取具体的工厂类对象
------解决方案--------------------
楼主的例子可以这样分析:
声明一个抽象类LogFactory
里面理所当然地有个抽象方法Create()
这个抽象方法返回一个抽象类Log对象
那么,首先明确LogFactory和Log都是不可以被实例化的类。他们的继承类只有实现过所有抽象类的抽象方法后才能被实例化。