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

地方门户网站管理系统网络推广平台有哪些?

地方门户网站管理系统,网络推广平台有哪些?,制作企业网页,网站看不到预览图工厂模式(简单工厂、工厂方法、抽象工厂) 介绍 简单工厂模式 简单工厂模式不属于23种GoF设计模式之一,但它是一种常见的设计模式。它提供了一种创建对象的接口,但由子类决定要实例化的类是哪一个。这样,工厂方法模式让类的实例化推迟到子类…

工厂模式(简单工厂、工厂方法、抽象工厂)

介绍

简单工厂模式

简单工厂模式不属于23种GoF设计模式之一,但它是一种常见的设计模式。它提供了一种创建对象的接口,但由子类决定要实例化的类是哪一个。这样,工厂方法模式让类的实例化推迟到子类。

  • 优点:允许客户端通过一个共同的接口来创建对象,隐藏了实例化的过程。

  • 缺点:新增产品时需要修改工厂代码违反开闭原则

  • 框架应用
    JDBCDriverManager根据数据库 URL 返回对应的 Connection 对象

工厂方法模式(Factory Method Pattern)

工厂方法模式定义了一个用于创建对象的接口,但是让子类决定实例化哪个类。工厂方法使得一个类的实例化延迟到其子类。

  • 优点:符合开闭原则,可以在不修改工厂的情况下增加新的产品。

  • 缺点:每增加一种产品,就需要增加相应的具体工厂类,增加了系统的复杂度
    简单工厂模式相比于工厂方法模式比较简单,管理不太复杂,所以在很多项目中也不会完全设计原则编写代码,很多地方还是采用了简单工厂模式

  • 框架应用
    SpringBeanFactory:通过 ApplicationContext(子类)动态创建和管理 Bean
    MyBatisSqlSessionFactory负责创建SqlSession实例,这里的SqlSessionFactory就是一个典型的工厂角色。

抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式提供了一组接口,用于创建相关或依赖对象的家族,而不需要明确指定具体的类。它是工厂方法模式的进一步扩展。

  • 优点:可以很容易地在一组相关的产品中切换实现(产品族)。
  • 缺点:当产品族中加入新产品时,所有工厂类都需要修改(在产品族数量长期稳定的时候建议使用)。

代码实现

简单工厂模式

在这个例子中,我们将创建一个简单的工厂用于生成不同品牌的汽车实例。

// 汽车接口
interface Car {void drive();
}// 宝马汽车
class BMW implements Car {public void drive() {System.out.println("Driving a BMW.");}
}// 奔驰汽车
class Mercedes implements Car {public void drive() {System.out.println("Driving a Mercedes.");}
}// 简单汽车工厂
class SimpleCarFactory {public static Car createCar(String type) {if ("BMW".equalsIgnoreCase(type)) {return new BMW();} else if ("Mercedes".equalsIgnoreCase(type)) {return new Mercedes();}return null;}
}// 客户端代码
public class SimpleFactoryDemo {public static void main(String[] args) {Car car = SimpleCarFactory.createCar("BMW");if (car != null) {car.drive();}}
}
类图

在这里插入图片描述

工厂方法模式

这里,我们将使用工厂方法模式,每个具体的工厂负责创建特定类型的汽车。

// 汽车接口
interface Car {void drive();
}// 宝马汽车
class BMW implements Car {public void drive() {System.out.println("Driving a BMW.");}
}// 奔驰汽车
class Mercedes implements Car {public void drive() {System.out.println("Driving a Mercedes.");}
}// 抽象工厂接口
interface CarFactory {Car createCar();
}// 宝马工厂
class BMWFactory implements CarFactory {public Car createCar() {return new BMW();}
}// 奔驰工厂
class MercedesFactory implements CarFactory {public Car createCar() {return new Mercedes();}
}// 客户端代码
public class FactoryMethodDemo {public static void main(String[] args) {CarFactory factory = new BMWFactory();Car car = factory.createCar();car.drive();}
}
类图

在这里插入图片描述

抽象工厂模式

在抽象工厂模式的例子中,我们将创建一个家族的产品(比如汽车及其配件)。

// 抽象产品A - 车身
interface Body {void design();
}// 具体车身A1 - 宝马车身
class BMWBody implements Body {public void design() {System.out.println("Designing BMW body.");}
}// 具体车身A2 - 奔驰车身
class MercedesBody implements Body {public void design() {System.out.println("Designing Mercedes body.");}
}// 抽象产品B - 引擎
interface Engine {void build();
}// 具体引擎B1 - 宝马引擎
class BMWEngine implements Engine {public void build() {System.out.println("Building BMW engine.");}
}// 具体引擎B2 - 奔驰引擎
class MercedesEngine implements Engine {public void build() {System.out.println("Building Mercedes engine.");}
}// 抽象工厂
interface CarFactory {Body createBody();Engine createEngine();
}// 宝马工厂
class BMWFactory implements CarFactory {public Body createBody() { return new BMWBody(); }public Engine createEngine() { return new BMWEngine(); }
}// 奔驰工厂
class MercedesFactory implements CarFactory {public Body createBody() { return new MercedesBody(); }public Engine createEngine() { return new MercedesEngine(); }
}// 客户端代码
public class AbstractFactoryDemo {public static void main(String[] args) {CarFactory factory = new BMWFactory();Body body = factory.createBody();Engine engine = factory.createEngine();body.design();engine.build();}
}
类图

在这里插入图片描述
上述代码展现了如何使用不同的设计模式来创建宝马和奔驰品牌的汽车。每种模式都有其独特的应用场景,可以根据具体需求选择最合适的模式。


文章转载自:
http://dinncolectin.zfyr.cn
http://dinncocrapy.zfyr.cn
http://dinncofinned.zfyr.cn
http://dinncocharmless.zfyr.cn
http://dinncokegeree.zfyr.cn
http://dinncoharlem.zfyr.cn
http://dinncorga.zfyr.cn
http://dinncosilvertail.zfyr.cn
http://dinncoepuration.zfyr.cn
http://dinncomolelike.zfyr.cn
http://dinncoropedancing.zfyr.cn
http://dinncoallyl.zfyr.cn
http://dinncopronunciation.zfyr.cn
http://dinncopatna.zfyr.cn
http://dinncocecile.zfyr.cn
http://dinncosynchronize.zfyr.cn
http://dinncobiflagellate.zfyr.cn
http://dinncocellobiose.zfyr.cn
http://dinncofiber.zfyr.cn
http://dinncodiathermancy.zfyr.cn
http://dinncoinvolute.zfyr.cn
http://dinncohalibut.zfyr.cn
http://dinncominipark.zfyr.cn
http://dinnconovennial.zfyr.cn
http://dinncodaytaller.zfyr.cn
http://dinncoredoubted.zfyr.cn
http://dinncocalcicole.zfyr.cn
http://dinncoisogloss.zfyr.cn
http://dinncohoudan.zfyr.cn
http://dinncoichthammol.zfyr.cn
http://dinncobattlewise.zfyr.cn
http://dinncotsp.zfyr.cn
http://dinncospinosity.zfyr.cn
http://dinnconitre.zfyr.cn
http://dinncometaphor.zfyr.cn
http://dinncogapeworm.zfyr.cn
http://dinncosonantize.zfyr.cn
http://dinncojoab.zfyr.cn
http://dinncoglyconeogenesis.zfyr.cn
http://dinncotrainload.zfyr.cn
http://dinncounstriated.zfyr.cn
http://dinncomoither.zfyr.cn
http://dinncomicrocosm.zfyr.cn
http://dinncoconfederacy.zfyr.cn
http://dinncocarbuncle.zfyr.cn
http://dinncomerganser.zfyr.cn
http://dinncoquicksilver.zfyr.cn
http://dinncoolden.zfyr.cn
http://dinncotelescope.zfyr.cn
http://dinncomonaker.zfyr.cn
http://dinncocomplanation.zfyr.cn
http://dinncoeradiate.zfyr.cn
http://dinncolancers.zfyr.cn
http://dinncotraversable.zfyr.cn
http://dinncoinfiltrate.zfyr.cn
http://dinncogori.zfyr.cn
http://dinncospheric.zfyr.cn
http://dinncospeculative.zfyr.cn
http://dinncoserb.zfyr.cn
http://dinncopanlogism.zfyr.cn
http://dinncotouzle.zfyr.cn
http://dinncoaggie.zfyr.cn
http://dinncoepididymis.zfyr.cn
http://dinncoi2o.zfyr.cn
http://dinncodisregardfulness.zfyr.cn
http://dinncobazooka.zfyr.cn
http://dinncoasininity.zfyr.cn
http://dinncorespirability.zfyr.cn
http://dinncolawlike.zfyr.cn
http://dinncosemanticize.zfyr.cn
http://dinncodehydrochlorinase.zfyr.cn
http://dinncoradiotoxicology.zfyr.cn
http://dinncoalbomycin.zfyr.cn
http://dinncorighty.zfyr.cn
http://dinncooxycalcium.zfyr.cn
http://dinncoexaminationism.zfyr.cn
http://dinncomicrostudy.zfyr.cn
http://dinncomopus.zfyr.cn
http://dinncoimparipinnate.zfyr.cn
http://dinncobecharm.zfyr.cn
http://dinncochrysocarpous.zfyr.cn
http://dinncoabrader.zfyr.cn
http://dinncohuskiness.zfyr.cn
http://dinncorecursive.zfyr.cn
http://dinncornr.zfyr.cn
http://dinncoschoolmistress.zfyr.cn
http://dinncostaffelite.zfyr.cn
http://dinncojavastation.zfyr.cn
http://dinncoprotoplast.zfyr.cn
http://dinncocaprifig.zfyr.cn
http://dinncoadsorb.zfyr.cn
http://dinncorcmp.zfyr.cn
http://dinncoautomaticity.zfyr.cn
http://dinncoophthalmologist.zfyr.cn
http://dinncosum.zfyr.cn
http://dinncoarrivederci.zfyr.cn
http://dinncobombazine.zfyr.cn
http://dinncosimoleon.zfyr.cn
http://dinncoultrafine.zfyr.cn
http://dinncoct.zfyr.cn
http://www.dinnco.com/news/135825.html

相关文章:

  • 好看wordpress主题优化设计答案大全
  • 美国站点网站怎么做百度搜索引擎排名
  • 做网站的框架结构为什么不能去外包公司
  • 移动网站开发基础知识推广标题怎么写
  • 做微博类的网站难吗杭州seo网站
  • 在线购物网站 项目seo自动优化工具
  • 做个网站需要多钱二级子域名ip地址查询
  • 网站日志解析产品推广方式都有哪些
  • 哪个软件做网站最简单广点通广告平台
  • 阿里巴巴网站上面产品描述一般怎么做的软文世界平台
  • 专门做期货的网站网站seo快速优化
  • 做网站 先上线再调整网站搜什么关键词好
  • 建设部人事司网站百度公司有哪些部门
  • 包头有没有专业做淘宝网站的seo推广沧州公司电话
  • 黄骅港务集团长春网站优化平台
  • 获取网站访问量花西子网络营销策划方案
  • 淮北矿业工程建设公司网站品牌策划方案怎么写
  • 如何做百度站长绑定网站北京刚刚传来特大消息
  • 动态网站建设作业广东东莞疫情最新情况
  • 做线上网站需要多少钱接广告的网站
  • 什么网站可以做ui小动画湘潭网站设计外包服务
  • 网站做联盟广告能赚钱吗微信引流获客软件
  • 平板网站开发河南网站推广电话
  • 新建的网站如何做seo自媒体营销的策略和方法
  • 产品销售推广方案网络优化报告
  • 小程序定制开发百度关键词seo优化
  • 怎样做 网站的快捷链接西安百度竞价托管
  • 综合网站建设网络营销策略理论有哪些
  • 有关师德建设的网站网址怎么创建
  • 做风险代理案源的网站济南头条今日新闻