扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
结构:
意图:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。
适用性 :
当一个类不知道它所必须创建的对象的类的时候。
当一个类希望由它的子类来指定它所创建的对象的时候。
当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
示例代码:
// Factory Method
namespace FactoryMethod_DesignPattern
{
using System;
// These two classes could be part of a framework,
// which we will call DP
// ===============================================
class DPDocument
abstract class DPApplication
{
protected DPDocument doc;
abstract public void CreateDocument();
public void ConstructObjects()
{
// Create objects as needed
// . . .
// including document
CreateDocument();
}
abstract public void Dump();
}
// These two classes could be part of an application
// =================================================
class MyApplication : DPApplication
{
override public void CreateDocument()
{
doc = new MyDocument();
}
override public void Dump()
{
Console.WriteLine("MyApplication exists");
}
}
class MyDocument : DPDocument
///
/// Summary description for Client.
///
public class Client
{
public static int Main(string[] args)
{
MyApplication myApplication = new MyApplication();
myApplication.ConstructObjects();
myApplication.Dump();
return 0;
}
}
}
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者