• 工厂模式


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

    工厂模式有如下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("已生产一辆大众汽车!");
            }
        }
    }
    简单工厂模式
  • 相关阅读:
    SqlServer卡慢解决办法
    His表(简化)
    解决Oracle数据库空间不足问题
    获取select下拉框选中的的值
    使用编辑器Sublime
    Angularjs中的$filter
    Angularjs 的Controlleras 和$scope
    在html页面中实现代码的高亮显示
    Angularjs的ui-router
    TML5之Canvas
  • 原文地址:https://www.cnblogs.com/runninglzw/p/4430405.html
Copyright © 2020-2023  润新知