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("已生产一辆大众汽车!");
            }
        }
    }
    简单工厂模式
  • 相关阅读:
    在服务器上搭建java环境
    往Android studio中导入类库文件
    Android异步任务AsyncTask
    搭建java环境
    使用安卓实现一个二维码扫描功能(基于Android Studio)
    Android中的runOnUiThread
    网络基础
    Android使用URL访问网络资源
    21天学通VC++
    cometd(转)
  • 原文地址:https://www.cnblogs.com/runninglzw/p/4430405.html
Copyright © 2011-2022 走看看