zoukankan      html  css  js  c++  java
  • C#设计模式:工厂模式

    一,工厂模式

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace _2._1工厂模式
    {
        class Program
        {
            static void Main(string[] args)
            {
                IPeopleFactory a = new ChinePeople();
                Console.Write("中国人人穿了" + a.ShowShoes("红色") + "," + a.ShowClothes("红色"));
                IPeopleFactory b = new USAPeople();
                Console.Write("美国人穿了" + b.ShowShoes("白色") + "," + b.ShowClothes("白色"));
            }
        }
        public interface IPeopleFactory
        {
            string ShowShoes(string type);
            string ShowClothes(string type);
        }
        public class ChinePeople : IPeopleFactory
        {
            public string ShowShoes(string type)
            {
                return type + "上衣";
            }
            public string ShowClothes(string type)
            {
                return type + "裤子";
            }
        }
        public class USAPeople : IPeopleFactory
        {
            public string ShowShoes(string type)
            {
                return type + "上衣";
            }
            public string ShowClothes(string type)
            {
                return type + "裤子";
            }
        }
    }

     二,主要用于隔离类对象的使用者和具体类型之间的耦合关系和实现多态等

    与抽象工厂模式的区别在抽象工厂模式中详解

    三,有时候我们有种疑惑,为什么我们不使用工厂模式,而使用现在的IOC呢?

    其实本质上还是因为IOC是通过反射机制来实现的。当我们的需求出现变动时,工厂模式会需要进行相应的变化。但是IOC的反射机制允许我们不重新编译代码,因为它的对象都是动态生成的。

  • 相关阅读:
    C51学习笔记
    Keil C51与Keil ARM共存
    keil c51笔记
    css实现三角形
    微信小程序倒计时实现
    微信小程序公共组件的引用与控制
    mac上查找nginx安装位置
    charles抓取移动端app数据
    封装react组件——三级联动
    前端基础(http协议相关篇)
  • 原文地址:https://www.cnblogs.com/May-day/p/8418814.html
Copyright © 2011-2022 走看看