科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件C#设计模式之Factory Method

C#设计模式之Factory Method

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

来源:soft6 2008年5月22日

关键字: 模式 设计 C# Windows

  • 评论
  • 分享微博
  • 分享邮件
名称:Factory Method

  结构:

  

  意图:

  定义一个用于创建对象的接口,让子类决定实例化哪一个类。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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章