• 2 简单工厂模式


      public class CreateFactory
        {
            public static ICreate GeneratorCreate(string createName)
            {
                switch (createName)
                {
                    case "People":
                        return new People();
                    case "Animal":
                        return new Animal();
                    default:
                        throw new NotImplementedException();
                }
            }
        }
        /// <summary>
        /// 人类实现工厂接口
        /// </summary>
        public class People : ICreate
        {
    
            #region ICreate 成员
    
            public string Create()
            {
                return "创建人类";
            }
    
            #endregion
        }
        /// <summary>
        /// 动物实现工厂接口
        /// </summary>
        public class Animal : ICreate
        {
    
            #region ICreate 成员
    
            public string Create()
            {
                return "创建动物";
            }
    
            #endregion
        }
        /// <summary>
        /// 简单工厂接口,返回值类型
        /// </summary>
        public interface ICreate
        {
            string Create();
        }
    View Code

    简单工厂:根据提供给它的数据,返回一个类的实例,通常它返回的类都有一个公共的父类(或者接口对象)
    简单工厂的核心是实例化对象,简单工厂实例化的类具有相同的接口或者基类,在子类比较固定,并不需要扩展时候,可以使用简单工厂,
    简单工厂的优点是:可以根据参数获取相应的实例,避免了直接实例化,减低了耦合性,
    缺点是可实例化的类型再编译期间已经确定,如果增加新类型,需要修改工厂,不符合OCP(开闭原则),简单工厂需要知道所有要生成的类型,当子类过多,或者子类层级过多则不适合使用简单工厂

    调用:

    CreateFactory.GeneratorCreate("People").Create()
  • 相关阅读:
    "Killed signal terminated program cc1plus"编译错误解决
    关于如何批量脚本停用(启用)SQL Server 和 ORACLE 数据库用户作业
    win10 激活
    关于LUN的归属控制器
    Git
    nacos集群配置服务注册不上来
    foxmail怎样加载已有的数据文件
    oracle监听服务的动态注册和静态注册
    jupyter notebook 下载及使用
    WebSocket部署之Nginx配置
  • 原文地址:https://www.cnblogs.com/niuzaihenmang/p/5640888.html
Copyright © 2020-2023  润新知