读书人

《软件设计精要与模式》抽象类的一点不

发布时间: 2012-02-11 09:51:35 作者: rapoo

《软件设计精要与模式》抽象类的一点不明白,大家指教
刚在看《软件设计精要与模式》中
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都是不可以被实例化的类。他们的继承类只有实现过所有抽象类的抽象方法后才能被实例化。

读书人网 >asp.net

热点推荐