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

营销型网站设计建设增城网站建设

营销型网站设计建设,增城网站建设,做音响的是哪个网站,新泰建设局网站工厂模式 1.什么是工厂模式 它提供了一种创建对象的最佳方式。在工厂模式中#xff0c;我们在创建对象时不会对客户端暴露创建逻辑#xff0c;并且是通过使用一个共同的接口来指向新创建的对象。实现了创建者和调用者分离#xff0c;工厂模式分为简单工厂、工厂方法、抽象…工厂模式 1.什么是工厂模式 它提供了一种创建对象的最佳方式。在工厂模式中我们在创建对象时不会对客户端暴露创建逻辑并且是通过使用一个共同的接口来指向新创建的对象。实现了创建者和调用者分离工厂模式分为简单工厂、工厂方法、抽象工厂模式 2.工厂模式好处 工厂模式是我们最常用的实例化对象模式了是用工厂方法代替new操作的一种模式。 利用工厂模式可以降低程序的耦合性为后期的维护修改提供了很大的便利。 将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。 4.Spring开发中的工厂设计模式 1.Spring IOC 看过Spring源码就知道在Spring IOC容器创建bean的过程是使用了工厂设计模式 Spring中无论是通过xml配置还是通过配置类还是注解进行创建bean大部分都是通过简单工厂来进行创建的。 当容器拿到了beanName和class类型后动态的通过反射创建具体的某个对象最后将创建的对象放到Map中。 2.为什么Spring IOC要使用工厂设计模式创建Bean呢 在实际开发中如果我们A对象调用BB调用CC调用D的话我们程序的耦合性就会变高。耦合大致分为类与类之间的依赖方法与方法之间的依赖。 在很久以前的三层架构编程时都是控制层调用业务层业务层调用数据访问层时都是是直接new对象耦合性大大提升代码重复量很高对象满天飞 为了避免这种情况Spring使用工厂模式编程写一个工厂由工厂创建Bean以后我们如果要对象就直接管工厂要就可以剩下的事情不归我们管了。Spring IOC容器的工厂中有个静态的Map集合是为了让工厂符合单例设计模式即每个对象只生产一次生产出对象后就存入到Map集合中保证了实例不会重复影响程序效率。 5.工厂模式分类 工厂模式分为简单工厂、工厂方法、抽象工厂模式 简单工厂 用来生产同一等级结构中的任意产品。不支持拓展增加产品工厂方法 用来生产同一等级结构中的固定产品。支持拓展增加产品抽象工厂 用来生产不同产品族的全部产品。不支持拓展增加产品支持增加产品族 5.1 简单工厂模式 什么是简单工厂模式 简单工厂模式相当于是一个工厂中有各种产品创建在一个类中客户无需知道具体产品的名称只需要知道产品类所对应的参数即可。但是工厂的职责过重而且当类型过多时不利于系统的扩展维护。 代码演示 创建工厂 package com.lijie;public interface Car {public void run(); }创建工厂的产品宝马 package com.lijie;public class Bmw implements Car {public void run() {System.out.println(我是宝马汽车...);} } 创建工另外一种产品奥迪 package com.lijie;public class AoDi implements Car {public void run() {System.out.println(我是奥迪汽车..);} } 创建核心工厂类由他决定具体调用哪产品 package com.lijie;public class CarFactory {public static Car createCar(String name) {if (.equals(name)) {return null;}if(name.equals(奥迪)){return new AoDi();}if(name.equals(宝马)){return new Bmw();}return null;} } 演示创建工厂的具体实例 package com.lijie;public class Client01 {public static void main(String[] args) {Car aodi CarFactory.createCar(奥迪);Car bmw CarFactory.createCar(宝马);aodi.run();bmw.run();} } 单工厂的优点/缺点 优点简单工厂模式能够根据外界给定的信息决定究竟应该创建哪个具体类的对象。明确区分了各自的职责和权力有利于整个软件体系结构的优化。 缺点很明显工厂类集中了所有实例的创建逻辑容易违反GRASPR的高内聚的责任分配原则 5.2 工厂方法模式 什么是工厂方法模式 工厂方法模式Factory Method又称多态性工厂模式。在工厂方法模式中核心的工厂类不再负责所有的产品的创建而是将具体创建的工作交给子类去做。该核心类成为一个抽象工厂角色仅负责给出具体工厂子类必须实现的接口而不接触哪一个产品类应当被实例化这种细节 代码演示 创建工厂 package com.lijie;public interface Car {public void run(); } 创建工厂方法调用接口所有的产品需要new出来必须继承他来实现方法 package com.lijie;public interface CarFactory {Car createCar();} 创建工厂的产品奥迪 package com.lijie;public class AoDi implements Car {public void run() {System.out.println(我是奥迪汽车..);} } 创建工厂另外一种产品宝马 package com.lijie;public class Bmw implements Car {public void run() {System.out.println(我是宝马汽车...);} } 创建工厂方法调用接口的实例奥迪 package com.lijie;public class AoDiFactory implements CarFactory {public Car createCar() {return new AoDi();} } 创建工厂方法调用接口的实例宝马 package com.lijie;public class BmwFactory implements CarFactory {public Car createCar() {return new Bmw();}} 演示创建工厂的具体实例 package com.lijie;public class Client {public static void main(String[] args) {Car aodi new AoDiFactory().createCar();Car jili new BmwFactory().createCar();aodi.run();jili.run();} } 5.3 抽象工厂模式 什么是抽象工厂模式 抽象工厂简单地说是工厂的工厂抽象工厂可以创建具体工厂由具体工厂来产生具体产品。 代码演示 创建第一个子工厂及实现类 package com.lijie;//汽车 public interface Car {void run(); }class CarA implements Car{public void run() {System.out.println(宝马);}}class CarB implements Car{public void run() {System.out.println(摩拜);}} 创建第二个子工厂及实现类 package com.lijie;//发动机 public interface Engine {void run();}class EngineA implements Engine {public void run() {System.out.println(转的快!);}}class EngineB implements Engine {public void run() {System.out.println(转的慢!);}} 创建一个总工厂及实现类由总工厂的实现类决定调用那个工厂的那个实例 package com.lijie;public interface TotalFactory {// 创建汽车Car createChair();// 创建发动机Engine createEngine(); }//总工厂实现类由他决定调用哪个工厂的那个实例 class TotalFactoryReally implements TotalFactory {public Engine createEngine() {return new EngineA();}public Car createChair() {return new CarA();} } 运行测试 package com.lijie;public class Test {public static void main(String[] args) {TotalFactory totalFactory2 new TotalFactoryReally();Car car totalFactory2.createChair();car.run();TotalFactory totalFactory new TotalFactoryReally();Engine engine totalFactory.createEngine();engine.run();} }
http://www.dnsts.com.cn/news/69654.html

相关文章:

  • 陕西营销型网站建设公司营销qq怎么申请
  • 韩国在中国做美食的视频网站陵水网站建设
  • 珠海建站网站访问国外网站好慢
  • 创建自己的网站能干什么福州seo关键词
  • 怎么做网站的排名大连模板建站定制
  • 崇明建设镇网站三明住房和城乡建设部网站
  • 网站建设免费教程建筑专业网站建设
  • 有没有专业做网站的上海企业服务云app
  • 百度官网认证网站公司网址怎么查询
  • 东莞做网站微信巴巴wordpress悬浮导航代码
  • 做网站赚多少泉州企业网站维护定制
  • 简单的电子商务网站主页设计图谷歌浏览器不支持wordpress插件
  • 开封公司网站如何制作北京公司招聘
  • 保定住房和城乡建设局网站wordpress删掉h1
  • 南京网站优化平台.la域名的门户网站
  • 免费源码html网站免费虚拟主机vps
  • js 网站校验域名购买服务商
  • 上海做网站收费浏览器网页版
  • 沧州网站建设 3tseowordpress主题不显示菜单
  • 网站备案域名所有人平面设计相关的网站有哪些
  • 广州网站优化服务域名购买国外
  • 广州制作网站服务青岛外发加工网
  • 家政网站模版福州网站制作维护
  • 自己做的网站如何被百度检索建设银行江苏省分行网站
  • 哪些网站可以做pptwordpress 内容
  • 国内信息图制作网站万网域名网站建设
  • 专业的菏泽网站建设公司知名网站域名
  • 网站建设对比广州网站建设公司乐云seo598
  • 鹤壁公司做网站免费建网站哪个平台好
  • 甜品店网站建设中信建设有限责任公司营业执照