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

电子商务网站建设策划书东莞单位网站建设

电子商务网站建设策划书,东莞单位网站建设,动态图片在线制作,安徽建工招采平台一、工厂模式(分为#xff1a;简单工厂模式、工厂方法模式、抽象工厂模式) 实现了创建者和调用者的分离 核心本质#xff1a;1、实例化对象#xff0c;用工厂方法代替new操作#xff1b;2、将选择实现类、创建对象统一管理和控制#xff0c;从而将调用者跟实现类解耦。 简…一、工厂模式(分为简单工厂模式、工厂方法模式、抽象工厂模式)     实现了创建者和调用者的分离 核心本质1、实例化对象用工厂方法代替new操作2、将选择实现类、创建对象统一管理和控制从而将调用者跟实现类解耦。 简单工厂模式用来生产同一等级结构中的任意产品对于增加的新的产品需要修改已有代码 工厂方法模式用来生产同一等级结构中的固定产品支持增加任意产品 抽象工厂模式用来生产不同产品族中的全部产品对于增加新的产品无能为力。支持增加新的产品族 【扩展】面向对象设计的基本原则(核心就是分工) OCP(开闭原则Open-Closed Principle)一个软件的实体应当对扩展开放对修改关闭。 DIP(依赖倒转原则Dependence Inversion Principe)要针对接口编程不要针对实现编程。 LoD(迪米特法则Law of Demeter)只与你直接的朋友通信避免和陌生人通信(某个类尽量与少的类反生依赖关系)。 二、各种模式详解 1、简单工厂模式(静态工厂模式) /*** 一个汽车类 接口 */ package cn.sxt.pattern;public interface Car {void run(); }/** 奥迪类* */ package cn.sxt.pattern;public class Audi implements Car{public void run() {System.out.println(奥迪在跑); } }/*** 比亚迪类*/ package cn.sxt.pattern;public class Byd implements Car{public void run() {System.out.println(比亚迪在跑);} } 【没有采用工厂模式】 /**** 没有采用工厂模式的情况下*/ package cn.sxt.pattern;public class Test_0423_Client01 {//调用者public static void main(String[] args) {Car carnew Audi();Car car2new Byd();car.run();car2.run(); } } 类图 【采用简单工厂模式】 /**** 简单工厂模式用来生产同一等级结构中的任意产品对于增加的新的产品需要修改已有代码* 工厂方法模式用来生产同一等级结构中的固定产品支持增加任意产品* 抽象工厂模式用来生产不同产品族中的全部产品对于增加新的产品无能为力。支持增加新的产品族* 采用简单工厂模式的一个工厂如果要增加新的子类如“红旗”类只能修改已有的代码 (return null) 做修改但是违反开闭原则* */ package cn.sxt.pattern;public class Test_0423_Factory {public static Car createCar(String type) {if (奥迪.equals(type)) {return new Audi(); }else if (比亚迪.equals(type)) {return new Byd(); }else {return null;} }//也可以采用这种方式去创建类对象所以也称它为静态方法 /* public static Car createAudi(){return new Audi();}public static Car createByd() {return new Byd(); }*/ }/**** 采用简单工厂模式的情况下*/ package cn.sxt.pattern;public class Test_0423_Client02 {//调用者public static void main(String[] args) {Car carTest_0423_Factory.createCar(奥迪);//不用直接与Audi类打交道,而是与工厂类打交道,通过调用方法new对象Car car2Test_0423_Factory.createCar(比亚迪);car.run();car2.run(); } } 类图 2、工厂方法模式 【一个工厂方法接口和客户类】 /**** 工厂方法模式用来生产同一等级结构中的固定产品支持增加任意产品*/ package cn.sxt.pattern;public interface Test_0423_Factory2 {Car createCar(); } /**** 采用工厂方法模式的情况下*/ package cn.sxt.pattern; public class Test_0423_Client03 {//调用者public static void main(String[] args) {Car carnew AudiFactory().createCar();Car car2new BydFactory().createCar();//如果要造奔驰那么直接增加benz.java和benzFactory.java这样不需要修改原有代码符合开闭原则。但是会增加代码量car.run();car2.run(); } } 【各种车型的工厂】 /*** 奥迪专门的工厂*/ package cn.sxt.pattern;public class AudiFactory implements Test_0423_Factory2 {public Car createCar() {return new Audi();}}/**比亚迪专门的工厂* */ package cn.sxt.pattern;public class BydFactory implements Test_0423_Factory2 {public Car createCar() {return new Byd();}} 类图 3、抽象工厂模式    用来生产不同产品族的全部产品    抽象工厂模式是针对产品族的情况在多个业务品种、业务分类时通过抽象工厂模式产生需要的对象是个很好解决办法。 【产品族】 一个产品族发动机、座椅、轮胎 由 高级发动机、高级座椅、高级轮胎组成一个高级产品族 生成一个高端汽车 由 低级发动机、低级座椅、低级轮胎组成一个低级产品族 生成一个低端汽车。 【一个产品族】 /**** 发动机接口*/ package cn.sxt.abstractFactory;public interface Engine {void run();void start(); }class LuxuryEngine implements Engine{ //好发动机类 public void run() {System.out.println(转的快); }public void start() {System.out.println(启动快); } }class LowEngine implements Engine{ //差发动机类 public void run() {System.out.println(转的慢); }public void start() {System.out.println(启动慢); } }/**** 座椅接口*/ package cn.sxt.abstractFactory;public interface Seat {void comfortable(); }class LuxurySeat implements Seat{ //好座椅类 public void comfortable() {System.out.println(坐着舒服); } }class LowSeat implements Seat{ //差座椅类 public void comfortable() {System.out.println(坐着难受); } }/**** 轮胎接口*/ package cn.sxt.abstractFactory;public interface Tyre {void friction(); }class LuxuryTyre implements Tyre{ //好轮胎类 public void friction() {System.out.println(摩擦力大); } }class LowTyre implements Tyre{ //差轮胎类 public void friction() {System.out.println(摩擦力小); } } 【工厂类】 /**** 造汽车的工厂接口*/ package cn.sxt.abstractFactory;public interface Test_0423_Factory03 {Engine createEngine();Seat createSeat();Tyre createTyre(); }/*** //造高端汽车的工厂*/ package cn.sxt.abstractFactory;public class LuxuryCarFactory implements Test_0423_Factory03{ public Engine createEngine() {return new LuxuryEngine();//返回好发动机的对象}public Seat createSeat() {return new LuxurySeat();}public Tyre createTyre() {return new LuxuryTyre();} }/*** //造低端汽车的工厂*/ package cn.sxt.abstractFactory;public class LowCarFactory implements Test_0423_Factory03{ public Engine createEngine() {//返回差发动机的对象return new LowEngine();}public Seat createSeat() {return new LowSeat();}public Tyre createTyre() {return new LowTyre();} } 【一个客户对象】 /**** 采用抽象工厂模式的情况下*/ package cn.sxt.abstractFactory;public class Test_0423_Client04 {//调用者public static void main(String[] args) {Test_0423_Factory03 factorynew LuxuryCarFactory();Engine enginefactory.createEngine();engine.run();engine.start();Test_0423_Factory03 factory2new LowCarFactory();Tyre tyrefactory2.createTyre();tyre.friction();} } 【类图】 转载于:https://www.cnblogs.com/ID-qingxin/p/10747583.html
http://www.pierceye.com/news/460202/

相关文章:

  • 做网站需要参考书目书龙岩营销型网站建设
  • 南通网站建设解决方案求助如何做网站推广
  • 揭阳企业做网站淮安做网站
  • 怎么给餐饮店做网站用织梦做企业网站
  • 技术支持 创思佳网站建设如何制作自己的网站
  • 济南网站建设公司晟创未来wordpress xml插件
  • 前端做商城网站需要多久实训课网站开发个人小结
  • 南宁网站seo排名优化手机网站制作架构
  • 亿唐网不做网站做品牌案例分析seo 推广服务
  • 深圳网站建设服务器如何编写一份网站开发需求文档
  • 营销网站策划wordpress主题在线汉化插件下载
  • 深圳市网站开发个人养老保险金怎么交
  • 超炫html5网站模板新手做网站怎么上传系统
  • 一个网站的二级目录在另一台服务器上_怎么做网络营销工程师前景
  • 个人网站推广软件企业网站建设变相收取等级保护费6
  • 有没有一些网站可以做问卷个人网站 服务器
  • 网站前端WordPress怎么自定义页眉
  • 常州企业免费建站秦皇岛市住房公积金管理中心
  • 网站建设网站需要什么软件有哪些使用wordpress开发一个页面
  • 贵溪市城乡建设局网站手机网站推荐
  • wordpress多站点的路径深圳龙岗区宝龙街道
  • 做外贸免费发布产品的网站装修软件app哪个好
  • 网站注册系统医疗器械分类目录2021
  • 珠海建设网站百度收录有什么好处
  • 二手网站专业做附近人的有吗免费申请网站永久
  • 校园二手市场网站开发网站文章优化流程方案
  • 手机网站的必要性衡水网站设计费用
  • 厦门市建设安全管理协会网站网站登录模板下载
  • 江苏启安建设集团有限公司网站wordpress图标字体不显示不出来
  • 网络营销网站规划建设实训作业免费云空间