当前位置: 首页 > news >正文

大庆 网站建设基金培训网站

大庆 网站建设,基金培训网站,做一个网站后期维护需要做什么,昆明市城市建设档案馆网站简介 简单工厂模式(Simple Factory Pattern)属于类的创建型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过一个工厂类来创建对象,根据不同的参数或条件返回相应的对象实例。这种模式隐藏…

简介

简单工厂模式(Simple Factory Pattern)属于类的创建型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过一个工厂类来创建对象,根据不同的参数或条件返回相应的对象实例。这种模式隐藏了对象的创建细节,客户端只需通过工厂类获取对象而不需要直接实例化对象。

优点

  • 只需要传入 正确的参数 , 就可以 获取需要的对象 , 无需知道创建细节 ;
  • 工厂类中有必要的 判断逻辑 , 可以决定 根据当前的参数 创建对应的产品实例 , 客户端可以免除直接创建产品对象的责任 ;
  • 通过该模式 , 实现了对 创建实例 和 使用实例 的 责任分割 ;
  • 提供专门的 工厂类 用于创建对象 , 客户端 无需知道所创建的产品类的类名 , 只需要知道对应产品类的参数即可创建对象实例 ;

缺点

  • 工厂类 职责 过重 , 如果要增加新的产品 , 需要 修改工厂类的判断逻辑 , 违背 " 开闭原则 " ;
  • 7 大设计原则 , 不能全部遵守 , 也不能不遵守 , 注意平衡 功能 和 系统复杂度 , 找到最合适的一个点 ;

应用场景

  • 创建对象少 : 工厂类 负责 创建的对象 比较少 ;

  • 不关心创建过程 : 客户端 只知道 传入 工厂类 的参数 , 对于 如何创建对象 不关心 ;

实现

  • 创建一个学生的接口类:IStudent
public interface IStudent
{public void Study();
}
  • 创建三个子类:SmallStudent、MiddleStudent、LargeStudent继承接口IStuent
public class SmallStudent : IStudent
{public void Study(){Console.WriteLine("小学生在学习");}
}public class MiddleStudent : IStudent
{public void Study(){Console.WriteLine("中学生在学习!");}
}public class LargeStudent : IStudent
{public void Study(){Console.WriteLine("大学生在学习");}
}
  • 创建单独的简单工厂类统一创建实例
public class SimpleFactory
{/// <summary>/// 简单工厂/// </summary>/// <param name="type"></param>/// <returns></returns>/// <exception cref="NotImplementedException"></exception>public static IStudent CreateInstance(StudentType type){IStudent student = null;switch (type){case StudentType.SmallStudent:student = new SmallStudent();break;case StudentType.MiddleStudent:student = new MiddleStudent();break;case StudentType.LargeStudent:student = new LargeStudent();break;default:throw new NotImplementedException();}return student;}
}public enum StudentType : int
{[Description("小学生")]SmallStudent = 0,[Description("中学生")]MiddleStudent = 1,[Description("大学生")]LargeStudent = 2,
}
  • 演示上层调用
{IStudent smallStudent = SimpleFactory.CreateInstance(StudentType.SmallStudent);IStudent middleStudent = SimpleFactory.CreateInstance(StudentType.MiddleStudent);IStudent largeStudent = SimpleFactory.CreateInstance(StudentType.LargeStudent);
}

http://www.yayakq.cn/news/808892/

相关文章:

  • 简述电子商务网站的建设步骤wordpress the_excerpt()
  • dedecms中英文网站企业工商年报网上申报系统官网
  • php医院网站开发兼职企业网站ps模板
  • 做网站需要哪些框架大厂县城乡建设局网站
  • 做兼职的国外网站益阳建设企业网站
  • 网站空间租用合同佛山网站建设公司哪个性比价好些
  • 山西省住房与城乡建设厅网站企业网站建设程序
  • 设计师去哪个网站找工作南宁网站建设牛易飞
  • 网站开发vsc网站开发公司如何用源码建站
  • 中国建设银行网站地址网站开发技术案例
  • 企业做网站有什么用网站开发入职转正申请书
  • 沈阳建设网站费用网站技术支持什么意思
  • 网站不备案可以做百度竞价吗产品开发项目管理
  • 免费模板网站知乎长沙网页设计哪家专业
  • 有多少做汽车的网站宁波住房城乡建设局网站
  • 营销型网站九大特点济南浩特元辰建设工程有限公司网站
  • 泰州网站制作方案定制如何编程写代码
  • 中铁建设中南公司官方网站国内怎么打开WordPress网站
  • 响应式网站 乐云seo品牌国外教做美食网站
  • 网页设计师考证多少钱鄞州seo服务
  • 台州企业网站公共建设工程中心网站
  • 下厨房网站学做蒸包视频网站jianshe
  • 做会计要经常关注哪些网站医疗网站优化
  • 渝中网站建设漳浦网站设计
  • 广州网站设计公司vi设计公司阿里巴巴官网电脑版登录入口
  • 网站导航栏怎么做简单高校门户网站的建设
  • 如何购买网站长沙房地产市场情况分析
  • 英文网站营销做网站先要学
  • 泸州网站seo哈尔滨关键词排名首页
  • 手机网站开发需求文档网站建设的行业资讯_