读书人

为什么用 静态方法去替代 类的 构造函

发布时间: 2012-01-26 19:40:46 作者: rapoo

为什么用 静态方法去替代 类的 构造函数
我发现Image 类没有显示的给出构造函数,而是用 FromFile()这个静态方法,来实例画对象,为什么呢?
这样做有什么好处?〉

[解决办法]
class FileImage : Image
{
}

abstract class Image
{
public static Image FromFile()
{
return new FileImage();
}
}
[解决办法]
我刚试了一下,FromFile 打开的如果是bmp或ico文件,返回的是Bitmap类,如果打开的是wmf文件,则返回 Metafile 类。
要是完全按设计模式的说法,应该是由一个类厂来实现这个功能,
static class ImageFactory
{
public static Image FromFile(){}
}
MS的实现是将类厂合并到了Image类里,虽然不完全符合规范,但也无不可。
[解决办法]
一般来说,工厂设计模式的Create方法我们就称为工厂方法,而广义的工厂方法就是指创建不同类型对象的方法。

读书人网 >C#

热点推荐