zoukankan      html  css  js  c++  java
  • 工厂方法模式(Factory Method)

    简单工厂模式如果需要增加新类型,那么需要修改工厂类的代码,这就使得整个设计在一定程度上违反了“开放封闭原则”。

    我们定义一个抽象的工厂类,而定义具体的工厂类来实现这个抽象按钮工厂类中定义的方法。

    抽象化的结果使这种结构可以在不修改具体工厂类的情况下引进新的产品。这一特点使得工厂方法模式具有超越简单工厂模式的优越性。

    工厂方法模式又简称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态模式,属于类的创建型模式。

    在工厂方法模式中,父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,这样做的目的是将类的实例化操作延迟到子类中完成,即由子类来决定究竟应该实例化(创建) 哪一个类。

    模式结构:







    abstract class Factory
    {
            public abstract MobilePhone CreatePhone();
    }
    class AppleFactory : Factory
    {
      public override MobilePhone CreatePhone()
      {
        return new Iphone4S();
      }
    }  //其他类似
    
    abstract class MobilePhone
        {
            public abstract void Call();
            public abstract void SendMSG();
        }
    
    class Iphone4S : MobilePhone
        {
            public override void Call()
            {
                Console.WriteLine("用Iphone4S打电话");
            }
            public override void SendMSG()
            {
                Console.WriteLine("用Iphone4S发短信");
            }
        }

    class Program
        {
            static void Main(string[] args)
            {
                Factory f = new MicrosoftFactory(); // AppleFactory
                MobilePhone ph = f.CreatePhone();
                ph.Call();
                ph.SendMSG();
     
                Console.ReadKey();
            }
        }
    





  • 相关阅读:
    Spring Boot Docker
    基于 Spring Security 的前后端分离的权限控制系统
    Java图片加水印
    Linux安装Nexus
    Spring Security 入门篇
    树形结构的菜单表设计与查询
    延迟队列的常用的实现方式
    Spring Boot 自动配置 源码分析
    Spring Boot 启动过程
    服务端如何防止重复支付
  • 原文地址:https://www.cnblogs.com/peterleee/p/9373772.html
Copyright © 2011-2022 走看看