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

    工厂模式有四个角色:抽象工厂,具体工厂,抽象产品,具体产品
    1.抽象工厂
    namespace 验证工厂模式
    {
        public abstract class AbstractCarFactory
        {
            public abstract Car CreateCarInstance();
        }
    }
    2.具体工厂
    namespace 验证工厂模式
    {
        using System.Reflection;
     
        public class BenzCarFactory:AbstractCarFactory
        {
            public override Car CreateCarInstance()
            {
                return new BenzCar();
            }
        }
    }
    namespace 验证工厂模式
    {
    public class HavarCarFactory:AbstractCarFactory
        {
            public override Car CreateCarInstance()
            {
               return new HavarCar();
            }
        }
    }
    3.抽象产品
    namespace 验证工厂模式
    {
        public abstract class Car
        {
            public abstract void MingDi();
        }
    }
    4.具体产品
    namespace 验证工厂模式
    {
        class BenzCar:Car
        {
            public override void MingDi()
            {
                Console.WriteLine("奔驰车,嗡嗡");
            }
        }
    }
    namespace 验证工厂模式
    {
        class HavarCar:Car
        {
            public override void MingDi()
            {
                Console.WriteLine("哈佛H6,滴滴");
            }
        }
    }
     
    5.具体实现
    public class Program
        {
            static void Main(string[] args)
            {
                AbstractCarFactory factory=new BenzCarFactory();
                Car car=factory.CreateCarInstance();
                car.MingDi();
                //反射加载类【Load函数的参数时程序集名,createInstance的参数是 "命名空间."+"类名"】
                AbstractCarFactory factory2 =
                    (HavarCarFactory)Assembly.Load("验证工厂模式").CreateInstance("验证工厂模式.HavarCarFactory");
                Car car2=factory2.CreateCarInstance();
                car2.MingDi();
                Console.ReadKey();
            }
        }
  • 相关阅读:
    博客园停更...
    Linux-常用命令汇总
    Linux-目录结构
    Mysql-python连接操作数据库
    Mysql-概念及常用命令
    Mysql-Sql查询汇总
    Mysql-Sql增删改查
    Mysql-Navicat破解使用
    Mysql-环境配置及问题解决
    Fiddler-AutoResponder替换资源
  • 原文地址:https://www.cnblogs.com/yanglaosan/p/5948958.html
Copyright © 2011-2022 走看看