当前位置: 首页 > 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/239259.html

相关文章:

  • 文本分析网站公众号登录官网入口
  • mip网站怎么做匹配北京网站建设公司排行榜
  • 怎么用小皮创建网站购物网站建设论文
  • 邵阳网站制作企业建设高端网站的目的
  • 网站设计公司电话高端网站建设公司哪里济南兴田德润实惠吗
  • 网站版面设计说明编程课哪个机构最好
  • vs网站开发需要的组件泉州微信网站建设公司
  • 网站内做营销活动使用工具wordpress旅游类网站模板
  • 学校网站开发需求从哪些方面建设网站
  • 做招聘的h5用哪个网站购买已备案域名
  • 长沙 建站优化代码命名 网站
  • 网站版面布局南宁百姓网
  • 网站名超链接怎么做怎么用织梦制作响应式布局网站
  • 常州网站建设运营湖州广告设计公司
  • 建网站兴田德润etsy网站
  • 成品源码1988龙岗seo网络推广
  • 怎么清理网站后门文件网站建设类论文格式
  • 死链对网站的影响网店装修素材网站
  • 罗湖高端网站建设费用石家庄网站建设公司哪家好
  • 个人做排行网站成都便宜网站建设
  • 网站建设项目经理招聘如何注册互联网服务平台
  • 做外贸在什么网站做上海市装修公司排名
  • 一家专门做瓷砖特卖的网站wordpress主题商城
  • 网站兼容手机浏览器建筑人才网站哪个比较好
  • 服装网站建设策划书论文高校后勤网站建设要求
  • 大型网站如何优化如何做旅游网站推广
  • 网站建设与规划实训报告企业网站策划建设方案
  • 专注网站建设与制作服务器建设一个自己的网站
  • 专业网站建设哪家效果好seo关键词优化指南
  • 珠海市企业网站制作服务机构官网网站怎么做