zoukankan      html  css  js  c++  java
  • C#工厂模式-工厂方法

    简单工厂:

      工厂模式:简单工厂,工厂方法,抽象工厂三种.   工厂方法(力求简洁)

      工厂即为生产东西的地方.在C#也有这种模式,充分利用了面向对象语言的三大特征(多态,继承),简单工厂.工厂的功能就是生产,而生产些什么呢?一个工厂可以生产鞋子,生产衣服.它们所处的车间不一样,所以需要两个不同的类,这两个类继承工厂生产这个功能.(简单工厂)

      工厂方法,简单工厂的进阶版.那么对比简单工厂,工厂方法强在哪里?

      对比:简单工厂中只有工厂是抽象的,也就是说只有这个工厂只有这么一处可变的.工厂方法中,会有两处可变的,①工厂的抽象类②产品的抽象类.其次在工厂方法中产品的具体实现也是往后推,在简单工厂中产品实现是在工厂的抽象类中,在工厂方法中,产品的实现推到了产品的抽象类中.

      工厂方法的优点:能够很好的添加一样新产品,不用破坏逻辑,(简单工厂中,需要添加case语句),在工厂方法中再添加一个产品以及相对应的工厂即可

      介绍完毕,上干货

    工厂接口

    **注意方法的返回类型,是产品接口

    public abstract class IFactory
        {
            public abstract IThing Production();
        }

    产品接口

    public abstract class IThing
        {
            public abstract void Thing();
        }

    鞋子产品类(包含产品的具体实现)

    public class ShoesClass : IThing
        {
            public override void Thing()
            {
                Console.WriteLine("生产了鞋子");
            }
        }

    鞋子工厂(不包含产品的实现)

    public class ShoesFactory : IFactory
        {
            public override IThing Production()
            {
                return new ShoesClass();
            }
        }

    控制台

    class Program
        {
            static void Main(string[] args)
            {
                IFactory factory = new ShoesFactory();
                IThing thing = factory.Production();
                thing.Thing();
                Console.ReadKey();
            }
        }
  • 相关阅读:
    Spring 框架的设计理念与设计模式分析
    stratos paas平台
    云计算国际标准
    如何在KVM中管理存储池
    深度学习(四) softmax函数
    深度学习(二)BP求解过程和梯度下降
    深度学习(一) BP神经网络
    提交代码到git
    Mac 安装tensorflow
    Mac 安装Git
  • 原文地址:https://www.cnblogs.com/lbjlbj/p/10598578.html
Copyright © 2011-2022 走看看