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

郑州 公司网站制作黔南seo

郑州 公司网站制作,黔南seo,平面设计包括哪些方面,国际酒店网站建设不好设计模式—创建型模式之工厂模式 工厂模式#xff08;Factory Pattern#xff09;提供了一种创建对象的最佳方式。我们不必关心对象的创建细节#xff0c;只需要根据不同情况获取不同产品即可。 简单工厂模式 比如我们有造车的工厂#xff0c;来生产车#xff0c;我们先…设计模式—创建型模式之工厂模式 工厂模式Factory Pattern提供了一种创建对象的最佳方式。我们不必关心对象的创建细节只需要根据不同情况获取不同产品即可。 简单工厂模式 比如我们有造车的工厂来生产车我们先定义一个抽象车产品 //抽象车产品类 public abstract class AbstractCar { String engine;public abstract void run(); }我们有两个具体的产品货车和家用小汽车都继承自抽象车 //货车 public class Truck extends AbstractCar{public Truck() {this.engine 货车引擎;}Overridepublic void run() {System.out.println(this.engine---正在运行);} } //家用小汽车 public class MiniCar extends AbstractCar{public MiniCar() {this.engine 家用小汽车引擎;}Overridepublic void run() {System.out.println(this.engine ----------》正在运行);} }那我们的工厂可以如此定义 public class MySimpleFactory {/*** 获取车* param type* return*/public AbstractCar newCar(String type){if(truck.equals(type)){return new Truck();}else if(mini.equals(type)){return new MiniCar();}return null;} }一般简单工厂生产的产品优先。 测试类如下 public class SimpleFactoryTest {public static void main(String[] args) {MySimpleFactory factory new MySimpleFactory();AbstractCar truck factory.newCar(truck);AbstractCar mini factory.newCar(mini);truck.run();mini.run();} }运行如下 缺点 **违反了开闭原则扩展不易。**如果有大量的产品会有大量的if else。 工厂方法模式 因为简单工厂模式会出现大量的if else并不能满足打开扩展、关闭修改的原则我们希望如果有扩展直接扩展一个类就好不区改动创造类型的代码这样工厂方法模式就出现了。我们可以把工厂再进行抽象把我们的工厂提升一个层次。 抽象类或者接口就会有多个实现有多实现 就会有多功能。 抽象工厂如下: public abstract class AbstarctCarFactory {public abstract AbstractCar newCar(); }我们的货车、小汽车分别由不同的工厂来创建 //货车工厂 public class TruckFactory extends AbstarctCarFactory {Overridepublic AbstractCar newCar() {return new Truck();} } //小汽车工厂 public class MiniCarFactory extends AbstarctCarFactory {Overridepublic AbstractCar newCar() {return new MiniCar();} }测试类如下: public class FactoryMethodTest {public static void main(String[] args) {AbstarctCarFactory miniCarFactory new MiniCarFactory();AbstractCar miniCar miniCarFactory.newCar();miniCar.run();TruckFactory truckFactory new TruckFactory();AbstractCar truck truckFactory.newCar();truck.run();} }运行结果如下 这样如果我们有新的类型可以直接继承这个抽象工厂即可。 缺点 系统复杂度增加可创建的品类单一。 抽象工厂模式 我们先来区分两个概念 产品等级比如手机可以分为低配版手机、高配版手机产品等级结构即产品的继承结构如抽象类为手机可以有拍照手机、游戏手机等等。产品族产品可以分为手机、汽车等这是产品族。在抽象工厂模式中产品族是指由同一个工厂生产的位于不同产品等级结构中的一组产品。 在车的产品基础上我们又增加了新的产品手机。 public abstract class AbstractPhone {//手机类型String type;public abstract void run(); }public class GamePhone extends AbstractPhone {public GamePhone() {this.type 游戏手机;}Overridepublic void run() {System.out.println(this.type 正在运行了...);} }public class MyPhotoPhoneFactory implements MyAbstarctFactory{Overridepublic AbstractPhone newPhone() {return new PhotoPhone();} }如果我们想生产车和手机我们可以定义抽象工厂 public interface MyAbstarctFactory {default AbstractCar newCar(){return null;}default AbstractPhone newPhone(){return null;} }生产手机的工厂分别为 public class MyGamePhoneFactory implements MyAbstarctFactory{Overridepublic AbstractPhone newPhone() {return new GamePhone();} } public class MyPhotoPhoneFactory implements MyAbstarctFactory{Overridepublic AbstractPhone newPhone() {return new PhotoPhone();} }生产车的工厂分别为 public class MyMiniCarFactory implements MyAbstarctFactory{Overridepublic AbstractCar newCar() {return new MiniCar();} }public class MyTruckCarFactory implements MyAbstarctFactory{Overridepublic AbstractCar newCar() {return new Truck();} }测试类如下 public class MyTest {public static void main(String[] args) {MyAbstarctFactory factory new MyGamePhoneFactory();AbstractPhone abstractPhone factory.newPhone();abstractPhone.run();factory new MyMiniCarFactory();AbstractCar abstractCar factory.newCar();abstractCar.run();} }运行如下: 可以看到我们在扩展时都是新增类而不是修改原有的方法。
http://www.w-s-a.com/news/307369/

相关文章:

  • 建设在线购物网站淮南电商网站建设价格
  • 龙泉市旅游门户网站建设wordpress faq插件
  • 网站的流程图贵阳做网站方舟网络
  • c 做网站开发实例wordpress 加上index
  • 济南seo网站推广搜索广告推广
  • 有关于网站建设的参考文献宁波seo网络推广公司
  • 网站设配色个人主页介绍文案
  • 网站seo相关设置优化网站建设的好处
  • 上海市建设工程安全生产协会网站郴州网站设计公司
  • 网站大型网页游戏自己搭建服务器做视频网站
  • 建立网站企业wordpress用户名密码破解
  • 网站管理助手建站教程国外网站做acm题目比较好
  • 网站开发框架排行专业网页制作服务商
  • 企业网站建设入账政务网站建设信息
  • 网络平台建设是什么江门排名优化怎么做
  • 响应式旅游网站模板下载网址做
  • 个人做网站名称可以随意更改吗惠州网站推广排名
  • 自己建设一个网站步骤网站认证怎么认证
  • 深圳建站公司开发费用沧州手机建站哪家好
  • 兰州网站设计公司排名百度怎么发布短视频
  • 大连模板开发建站泰州网站建设策划方案
  • 厦门好的网站设计局域网内建网站
  • 关键词那种网站正版网页游戏平台排行榜
  • 网站自助建设平台创建网址快捷方式
  • 坑梓网站建设包括哪些成都网站建设优创
  • 重庆网站seo公司哪家好超级优化大师
  • 成都网站建设推广详情邵阳市住房和城乡建设局网站
  • 淄博网站推广猎头公司有哪些
  • 局域网内建立网站90设计网怎么样
  • 域名备案和网站备案有什么不同工程项目建设网站