当前位置: 首页 > 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://www.yayakq.cn/news/322632/

相关文章:

  • 网站关键词优化实验结果分析怎样让客户做网站
  • 广东公司网站建设教育网站建设网
  • 天长做网站中山网站代运营
  • 网站群建设意见征集wordpress企业模版配置
  • 苏州找工作网站有哪些网站系统升级建设合同
  • 做废旧金属的网站吉安公司做网站
  • 宁波网站推广代运营wordpress手机pc自动切换
  • 找建筑图纸的网站网络营销策略制定
  • 苏晋建设集团网站浙江工程造价信息网
  • 网站中弹出广告怎么做的模板设计图
  • 长沙手机app网站开发网站可以不备案
  • 水稻网站做go分析网站流量怎么赚钱
  • 科讯怎么建设网站做自己的首席安全官的网站
  • 灵璧做网站公司手机网站建设公司服务
  • 云南模板网站建设公司php学校网站建设
  • 企业网站系统设计论文手机网站单页
  • 设计师资格证搭建网站seo
  • 建设网站代理qq刷赞网站推广快速
  • 诸城做网站收费中国建设网站
  • 做名片去哪个网站网站用什么东西做
  • 丽水市城乡建设局网站行业网站导航
  • 做网站你给推广wordpress自定义php文件
  • 网站程序安全管理世界杯球队最新排名
  • 仿站怎么做山东省住房和城乡建设厅网站电话
  • 云建站模板郑州有没有厉害的seo
  • 最新火车停运通知今天东莞网络优化排名
  • 如何把网站扒下来做公众号网站
  • 申请备案网站空间asp.net实用网站开发
  • 安康市有没有滴滴平台宁波网站推广优化公司
  • 站长平台验证网站百度首页排名优化多少钱