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

企商百度网站建设视频互联网推广选择隐迅推

企商百度网站建设,视频互联网推广选择隐迅推,如何推销网站建设,搭建网站的空间哪里买什么是工厂模式 工厂方法模式定义了一个创建对象的接口#xff0c;但由子类来决定要实例化那个类。工厂方法让类把实例化推迟到了子类。 为什么要有工厂模式 书中以pizza店制作pizza为例子#xff0c;假设不用工厂模式#xff0c;在制作pizza阶段我们需要这样去实例化类但由子类来决定要实例化那个类。工厂方法让类把实例化推迟到了子类。 为什么要有工厂模式 书中以pizza店制作pizza为例子假设不用工厂模式在制作pizza阶段我们需要这样去实例化类 Pizza orderPizza(String type) {Pizza pizza;// 基于pizza的类型实例化具体的类这里的每个pizza都需要实现Pizza接口if (type.equals(cheess)) {pizza new CheesePizza();} else if (type.equals(greek)) {pizza new GreekPizza();}// pizza的前期准备pizza.prepare();pizza.bake();return pizza; }上述代码不符合开闭原则一旦pizza店改变pizza的供应则需要修改上述代码 简单工厂模式 简单工厂模式并不是一种设计模式而是一种编程习惯定义一个工厂类这个类封装所有披萨的对象创建pizza店客户端中不会进行实例化 代码如下 // 简单工厂代码 public Pizza SimplePizzaFactory {public Pizza createPizza(String type) {Pizza pizza null;if (type.equals(cheess)) {pizza new CheesePizza();} else if (type.equals(greek)) {pizza new GreekPizza();}} }// pizza店客户端代码 public class PizzaStore {SimplePizzaFactory factory;public PizzaStore(SimplePizzaFactory factory) {this.factory factory;}public Pizza orderPizza(String type) {Pizza pizza;pizza factory.createPizza(type);// pizza的前期准备pizza.prepare();pizza.bake();return pizza;} }简单工厂模式的类图 简单工厂模式的优点 将变化的部分抽离出来独立形成工厂避免在客户端直接创建 简单工厂模式的缺点 简单工厂只是提供了封装对象创建的一种方式但没有提供工厂方法的弹性因为它没有办法改变正在创建的产品。 工厂模式 如果pizza店引入了加盟商加盟商对于pizza需要有一些自己的定制化需求而上面的简单工厂模式则不符合这种需求需要引入工厂模式。 具体代码 1、定义pizza店接口 public abstract class PizzaStore {public Pizza orderPizza(String type) {Pizza pizza;pizza createPizza(type);pizza.prepare();pizza.bake();pizza.cut();pizza.box();return pizza;}protected abstract Pizza createPizza(String type); // 交给子类进行实例化 } 2、 抽象pizza的制作流程 public abstract class Pizza {String name;String dough;void prepare() {System.out.println(prepare finish);};void bake() {System.out.println(bake finish);};void cut() {System.out.println(cut finish);};void box() {System.out.println(box finish);};public String getName() {return name;}; } 3、定义加盟商的定制化需求 public class NYPizzaStore extends PizzaStore{Overridepublic Pizza createPizza(String item) {if (item.equals(cheese)) {return new NYStyleCheesePizza();}else return null;} }4、定义加盟商所使用的pizza材料 public class NYStyleCheesePizza extends Pizza{public NYStyleCheesePizza() {String name NY Style pizza;String dough thin crust dough;String sauce Marinara Sauce;} }5、main函数执行 public class Main {public static void main(String[] args) {PizzaStore nyStore new NYPizzaStore();Pizza pizza nyStore.orderPizza(cheese);}}执行结果 prepare finish bake finish cut finish box finish 工厂模式的类图 工厂模式中引入的设计原则 依赖倒置原则依赖抽象而不应该依赖具体类 遵循依赖倒置设计原则的指南 变量不应该持有到具体类的引用类不应该派生自具体类方法不应该覆盖任何基类的已实现方法 (以上指南并不是铁律要看具体的场景来遵守) 抽象工厂模式 抽象工厂模式提供一个接口来创建相关或依赖对象的家族而并不需要指定具体的类 比较工厂方法与抽象工厂方法 工厂方法 抽象工厂方法 区别 工厂方法中只会提供一个抽象接口接口的实现交给各个工厂去做抽象类只会知道是制作一个pizza。抽象工厂是把工厂方法中的接口给拆开了提供抽象接口的组合。会感知到制作pizza的抽象信息。抽象方法中对于每一个抽象接口的实现利用了工厂方法的思路。
http://www.pierceye.com/news/998340/

相关文章:

  • 计算机网站开发图片湛江城乡建设局网站
  • 广州个性化网站开发代做网站关键词
  • 如何开发一个手机网站北京推广网站
  • 企业网站建设合作合同wordpress国产定制主题
  • 万网虚拟机怎么做两个网站网页设计实训步骤
  • 福田做网站公司怎么选择wordpress怎样在列表页使用瀑布流
  • 做导航网站用多大的空间广州天河区有哪些大学
  • 广州市城乡建设部网站首页做婚礼设计在哪个网站下载素材
  • 网站建设推广服务合同范本什么是电子商务专业?
  • 青岛网站建设公司电话棋牌室的网站怎么做
  • 网站更改公司需要重新备案吗传媒网站
  • 海诚网站建设青岛李村网站设计公司
  • 哪个网站可以宣传做的蛋糕网站商城微信支付接口申请
  • 如何做淘客推广网站可信赖的手机网站设计
  • 西城专业网站建设公司哪家好外贸网站优化谷歌关键词排名
  • 先做网站后备案仿做网站可以整站下载器吧
  • ASP.NET实用网站开发 课后答案开发网站过程
  • 做网站需要编码吗仿站网站源码
  • 响应式网站什么意思爱南宁app下载官网最新
  • 自己做的网站怎么添加采集模块网站管理包括哪些内容
  • php做网站验证码的设计电商网站的二级怎么做
  • 广西网站建设价钱微信crm管理系统
  • 福州网站建设公司中小企业荆门市城乡建设管理局网站
  • 建设信用卡网站首页有做车身拉花的网站吗
  • 怎么做婚恋网站织梦网站推广插件
  • rtt全民互助平台网站开发自己怎样做免费网站
  • 建站模板东营建网站公司
  • 如何用vs做网站网络推广方案下拉管家微xiala11
  • 可以做彩票广告的网站吗做网站的应用
  • 龙岗网站 建设深圳信科湘潭做网站价格品牌磐石网络