zoukankan      html  css  js  c++  java
  • 设计模式之笔记--工厂方法模式(Factory Method)

    工厂方法模式(Factory Method)

    定义

           工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

    类图

    描述

    Product,抽象产品类,可以派生多个具体产品类;
    Factory,抽象工厂类,可以派生多个具体工厂类;
    每个具体工厂只能创建一个具体产品。

    应用场景

          汽车的种类有奥迪、奔驰等,汽车厂的种类有奥迪汽车厂、奔驰汽车厂等,每种汽车厂负责生产各自的汽车。

        /// <summary>
        /// 汽车接口
        /// </summary>
        public interface ICar
        {
            void Print();
        }
    
        /// <summary>
        /// 奥迪
        /// </summary>
        public class Audi : ICar
        {
            public void Print()
            {
                Console.WriteLine("这是一辆奥迪车.");
            }
        }
    
        /// <summary>
        /// 奔驰
        /// </summary>
        public class Benz : ICar
        {
            public void Print()
            {
                Console.WriteLine("这是一辆奔驰车.");
            }
        }
    
        /// <summary>
        /// 汽车工厂接口
        /// </summary>
        public interface ICarFactory
        {
            ICar CreateCar();
        }
    
        /// <summary>
        /// 具体的奥迪工厂类
        /// </summary>
        public class AudiFactory : ICarFactory
        {
            /// <summary>
            /// 生产汽车
            /// </summary>
            /// <returns></returns>
            public ICar CreateCar()
            {
                return new Audi();
            }
        }
    
        /// <summary>
        /// 具体的奔驰工厂类
        /// </summary>
        public class BenzFactory : ICarFactory
        {
            /// <summary>
            /// 生产汽车
            /// </summary>
            /// <returns></returns>
            public ICar CreateCar()
            {
                return new Benz();
            }
        } 
  • 相关阅读:
    3.数据库分类
    2.Oracle数据库安装教程
    1.Oracle数据库简介
    MySQL最全存储引擎、索引使用及SQL优化的实践
    大数据各个工具随笔
    初入Shell
    第4章 DDL数据定义
    第3章 Hive数据类型
    第2章 Hive安装
    MySQL 创建数据库
  • 原文地址:https://www.cnblogs.com/zhou-yi/p/5314537.html
Copyright © 2011-2022 走看看