zoukankan      html  css  js  c++  java
  • 工厂模式

    工厂模式:实质是由一个工厂类根据传入的参数,动态决定创建哪一类产品,也就是创建哪一个类的实例,一个类代表一个产品

    工厂模式有如下3个角色:

    1.工厂:工厂类可以直接被外界调用,创建所需要的产品

    2.抽象:一般是具体产品的父类

    3.具体产品:工厂模式的创建目标,继承自抽象的子类

    C#经常使用反射来实现工厂模式,因为反射可以动态地创建类型的实例

    下面是一个简单工厂模式(使用反射)的代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Reflection;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Factory
    {
        class Program
        {
            static void Main(string[] args)
            {
                //使用工厂方法创建实例
                Icar name1 = myfactory.getcar("Factory.fengtian");
                name1.makecar();
                Icar name2 = myfactory.getcar("Factory.Dazhong");//忽略了大小写“Dazhong”
                name2.makecar();
            }
        }
        public class myfactory//工厂:使用反射动态创建类型的实例
        {
            public static Icar getcar(string name)
            {
                Icar car = (Icar)Assembly.Load("Factory").CreateInstance(name, true);//Load表示加载程序集,CreateInstance表示查找指定的类型并创建实例,第一个参数表示指定的类型名,第二个参数表示忽略大小写
                return car;
             }
        }
        public interface Icar//抽象
        {
            void makecar();
        }
        public class fengtian : Icar//产品
        {
            public void makecar()
            {
                Console.WriteLine("已生产一辆丰田汽车!");
            }
        }
        public class dazhong : Icar//产品
        {
            public void makecar()
            {
                Console.WriteLine("已生产一辆大众汽车!");
            }
        }
    }
    简单工厂模式
  • 相关阅读:
    jmeter录制移动APP脚本
    java-装箱/拆箱-字符串转换成基本数据类型
    Java-接口和抽象类区别
    Java-适配器
    Java-instanceof关键字
    python递归的使用
    使用pygame库实现小球的运动
    while循环的使用
    python数据类型的介绍,以及练习题
    python变量的内存管理
  • 原文地址:https://www.cnblogs.com/runninglzw/p/4430405.html
Copyright © 2011-2022 走看看