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

男孩做网站网站企业快速备案流程

男孩做网站,网站企业快速备案流程,知名做漫画网站,网站推广 教程文章目录 前言一、简单工厂模式定义二、举个例子三、简单工厂模式的缺点总结 前言 本篇我们了解一下简单工厂模式#xff0c;它是设计模式的雏形#xff0c;是学习设计模式的开端#xff0c;我会结合案例说明它的设计思路。 一、简单工厂模式定义 简单工厂模式并不是GoF23… 文章目录 前言一、简单工厂模式定义二、举个例子三、简单工厂模式的缺点总结 前言 本篇我们了解一下简单工厂模式它是设计模式的雏形是学习设计模式的开端我会结合案例说明它的设计思路。 一、简单工厂模式定义 简单工厂模式并不是GoF23个设计模式中的一员但是一般将它作为学习设计模式的起点。简单工厂模式又称为静态方法模式Static Factory Method Pattern)属于类创建型模式。在简单工厂模式中可以根据参数的不同返回不同的类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例这个类称为工厂类被创建的实例通常都具有共同的父类。简单工厂模式的结构如下图 在模式结构图中Factory表示工厂类它是整个模式的核心负责实现创建所有实例的内部逻辑。工厂类可以被外部直接调用创建所需的产品对象。工厂类中有一个负责生产对象的静态工厂方法系统可以根据工厂方法所传入的参数动态决定应该创建出哪一个产品类的实例。工厂方法是静态的而且必须有返回类型其返回类型为抽象产品类型即Product类型Product表示抽象产品角色它是简单工厂模式所创建的所有对象的父类负责定义所有实例所共有的公共接口ConcreteProduct表示具体产品角色它是简单工厂模式的创建目标所有创建的对象都是充当这个角色的某个具体类的实例。一个系统中一般存在多个ConcreteProduct类每种具体产品对应一个Concrete类。 二、举个例子 我们设计一个Coffee(咖啡类)它是一个抽象类比如现在有两种具体咖啡分别是AmericanCoffee(美式咖啡)和LatteeCoffee(拿铁咖啡)因此我们需要一个具体工厂去创建具体咖啡产品我们再定义一个生产咖啡的工厂SimpleCoffeeFactory,它们的模式结构图如下 AmericanCoffee和LatteeCoffee需要继承Coffee这个抽象产品同时都要实现Coffee中的抽象方法比如获取咖啡名称添加牛奶加糖等方法而SimpleCoffeeFactory是生产咖啡的工厂需要提供一个静态的创建咖啡的方法同时这个方法的返回值类型必须是Coffee抽象类这就体现了多态的特性即父类引用可以指向子类对象。 相关代码如下 抽象咖啡类其实也可以是接口我定义的是抽象类 abstract public class Coffee {abstract protected void getName();abstract protected void addMilk();abstract protected void addSugar(); }美式咖啡具体产品 public class AmericanCoffee extends Coffee{Overrideprotected void getName() {System.out.println(American Coffee...);}Overrideprotected void addMilk() {System.out.println(add American coffee milk...);}Overrideprotected void addSugar() {System.out.println(add American coffee sugar...);} }拿铁咖啡具体产品 public class LatteCoffee extends Coffee{Overrideprotected void getName() {System.out.println(Latte Coffee...);}Overrideprotected void addMilk() {System.out.println(add Latte Coffee milk...);}Overrideprotected void addSugar() {System.out.println(add Latte Coffee sugar...);} }咖啡工厂类 public class SimpleCoffeeFactory {public static Coffee createFactory(String type){Coffee coffee null;if (AmericanCoffee.equals(type)){coffee new AmericanCoffee();} else if (LatteeCoffee.equals(type)) {coffee new LatteCoffee();}return coffee;} }在咖啡工厂类中定义了一个创建咖啡的静态方法入参是咖啡的类型根据类型判断返回具体咖啡对象。 在外部可以创建一个咖啡店类调用工厂提供的静态方法去创建具体的咖啡 public class CoffeeStory {public static void main(String[] args) {orderCoffee(AmericanCoffee);}public static Coffee orderCoffee(String name){SimpleCoffeeFactory simpleCoffeeFactory new SimpleCoffeeFactory();Coffee coffee simpleCoffeeFactory.createFactory(name);coffee.getName();coffee.addMilk();coffee.addSugar();return coffee;} }三、简单工厂模式的缺点 在简单工厂模式中工厂类包含必要的判断逻辑决定在什么时候创建哪一个产品类的实例客户端可以直接免除直接创建产品对象的责任而仅仅“消费”产品简单工厂模式通过这种方式实现了对责任的划分。但是由于工厂类集中了所有产品创建逻辑一旦不能正常工作整个系统都要受到影响同时系统扩展较为困难一旦添加新产品就不得不修改工厂逻辑违反了开闭原则。比如上面的案例如果我们再增加一种意大利咖啡那么在创建具体产品类的同时静态工厂方法的代码逻辑需要改动。因此简单工厂模式是存在很多问题的通常并不用于实际开发中。 总结 本篇我们结合实际案例说明了简单工厂模式的设计原理和它包含的角色下面我们继续看另一种设计更合理的工厂方法模式。
http://www.zqtcl.cn/news/359413/

相关文章:

  • 城关区建设局网站珠海中英文网站建设
  • 长春哪家做网站便宜手机英语网站
  • 应城网站建设莱芜拉呱
  • 如何建立淘宝客网站HTML网站建设课程
  • 网站建设供需chrome不安全的网站设置
  • 网站dns修改中国楼市未来发展趋势
  • 网站超级链接怎么做帮别人发广告赚钱平台
  • 做网站可以赚钱么注册做网站的公司
  • 河南省建协网官方网站建网站卖阀门
  • 医院网站怎么制作重庆安全监督工程信息网
  • 饰品网站建设规划书搭建微信网站
  • 开发网站访问流量赚钱加盟网站需要怎么做
  • 装饰协会网站源码湖南省郴州市北湖区
  • 花都网站建设价格重庆市住房和城乡建设厅网站
  • 北京住总第一开发建设有限公司网站wordpress 网站访问认证页面
  • 网站制作的管理苏州百度推广服务中心
  • 厦门建行网站首页企业展厅建筑外观
  • 重庆定制型网站建设1000套网站源码
  • 阿里云网站建设服务费会计科目安平县建设局网站
  • 网上做国外兼职网站网络编程技术实验报告
  • iis网站服务器安全隐患分析创新的合肥网站建设
  • 蛋糕网站建设方案广州网站公司推荐
  • 无锡seo公司网站广渠门做网站的公司
  • 安徽股票配资网站建设seo教程自学网
  • 网站建设酷隆做3d建模贴图找哪个网站
  • 天津市工程建设交易管理中心网站自己如何搭建服务器
  • 汉语网站建设心得专业网站的定义
  • 泉州台商区建设局网站论坛内网站怎么建设
  • 做文字云的网站平面设计发展前景
  • 域名注册后怎么建网站万网建站教程