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

哪个网站看电视剧最全还免费温州企业自助建站系统

哪个网站看电视剧最全还免费,温州企业自助建站系统,哪里有好网站设计,公众号怎么链接wordpress目录 一、设计思路 1. 简单工厂模式 2. 工厂方法模式 3. 抽象工厂模式 二、UML类图(PlantUML格式) 1.简单工厂模式 2.工厂方法模式 3.抽象工厂模式 三、实现过程与结果 1. 简单工厂模式 2. 工厂方法模式 3. 抽象工厂模式 四、总结 在面向对…

目录

一、设计思路

1. 简单工厂模式

2. 工厂方法模式

3. 抽象工厂模式

二、UML类图(PlantUML格式)

1.简单工厂模式

2.工厂方法模式

3.抽象工厂模式

三、实现过程与结果

1. 简单工厂模式

2. 工厂方法模式

3. 抽象工厂模式

四、总结

        在面向对象设计中,工厂模式是一种常用的创建型设计模式,它通过将对象的创建逻辑集中管理,使得客户端无需直接创建对象,而是通过工厂类来获取所需的对象实例。这种设计思想不仅提高了代码的可扩展性和可维护性,还增强了系统的灵活性。本文将通过一个鼠标和键盘的商品对象创建系统,详细探讨简单工厂模式、工厂方法模式和抽象工厂模式的应用。

一、设计思路

1. 简单工厂模式

简单工厂模式通过一个统一的工厂类来创建对象,客户端通过传递类型参数来指定需要创建的对象。这种模式适合产品种类较少且不会频繁变化的场景。

  • 鼠标接口:定义鼠标的基本行为。

  • 具体鼠标类:实现无线鼠标和有线鼠标类,分别实现鼠标接口。

  • 鼠标工厂类:根据传入的类型参数创建相应的鼠标对象。

2. 工厂方法模式

工厂方法模式通过定义一个抽象工厂接口,让具体的工厂类实现该接口来创建对象。客户端通过使用抽象工厂接口,而不直接调用具体工厂类。这种模式适合产品种类较多且可能频繁变化的场景。

  • 鼠标接口:定义鼠标的基本行为。

  • 具体鼠标类:实现无线鼠标和有线鼠标类。

  • 抽象工厂接口:声明创建鼠标的方法。

  • 具体工厂类:实现抽象工厂接口,分别创建无线鼠标和有线鼠标。

3. 抽象工厂模式

抽象工厂模式通过一个抽象工厂接口来创建多个相关的产品族。具体工厂实现该接口,生产一组相关的产品。这种模式适合需要创建多个相关产品族的场景。

  • 鼠标接口:定义鼠标的基本行为。

  • 键盘接口:定义键盘的基本行为。

  • 具体产品类:实现无线鼠标、有线鼠标、无线键盘和有线键盘类。

  • 抽象工厂接口:声明创建鼠标和键盘的方法。

  • 具体工厂类:实现抽象工厂接口,分别创建无线设备(鼠标和键盘)和有线设备(鼠标和键盘)。

二、UML类图(PlantUML格式)

1.简单工厂模式

@startuml
interface Mouse {+ make()
}class WirelessMouse {+ make()
}class WiredMouse {+ make()
}class MouseFactory {+ createMouse(type: String): Mouse
}Mouse <|.. WirelessMouse
Mouse <|.. WiredMouse
MouseFactory --> Mouse
@enduml

2.工厂方法模式

@startuml
interface Mouse {+ make()
}class WirelessMouse {+ make()
}class WiredMouse {+ make()
}interface MouseFactory {+ createMouse(): Mouse
}class WirelessMouseFactory {+ createMouse(): Mouse
}class WiredMouseFactory {+ createMouse(): Mouse
}Mouse <|.. WirelessMouse
Mouse <|.. WiredMouse
MouseFactory <|.. WirelessMouseFactory
MouseFactory <|.. WiredMouseFactory
@enduml

3.抽象工厂模式

@startuml
interface Mouse {+ make()
}interface Keyboard {+ make()
}class WirelessMouse {+ make()
}class WiredMouse {+ make()
}class WirelessKeyboard {+ make()
}class WiredKeyboard {+ make()
}interface DeviceFactory {+ createMouse(): Mouse+ createKeyboard(): Keyboard
}class WirelessDeviceFactory {+ createMouse(): Mouse+ createKeyboard(): Keyboard
}class WiredDeviceFactory {+ createMouse(): Mouse+ createKeyboard(): Keyboard
}Mouse <|.. WirelessMouse
Mouse <|.. WiredMouse
Keyboard <|.. WirelessKeyboard
Keyboard <|.. WiredKeyboard
DeviceFactory <|.. WirelessDeviceFactory
DeviceFactory <|.. WiredDeviceFactory
@enduml

三、实现过程与结果

1. 简单工厂模式

代码实现:

public interface Mouse {void make();
}public class WirelessMouse implements Mouse {@Overridepublic void make() {System.out.println("制造无线鼠标");}
}public class WiredMouse implements Mouse {@Overridepublic void make() {System.out.println("制造有线鼠标");}
}public class MouseFactory {public Mouse createMouse(String type) {if ("wireless".equalsIgnoreCase(type)) {return new WirelessMouse();} else if ("wired".equalsIgnoreCase(type)) {return new WiredMouse();} else {return null;}}
}public class Demo {public static void main(String[] args) {MouseFactory factory = new MouseFactory();Mouse wirelessMouse = factory.createMouse("wireless");Mouse wiredMouse = factory.createMouse("wired");wirelessMouse.make(); // 输出:制造无线鼠标wiredMouse.make();    // 输出:制造有线鼠标}
}

2. 工厂方法模式

代码实现:

public interface Mouse {void make();
}public class WirelessMouse implements Mouse {@Overridepublic void make() {System.out.println("制造无线鼠标");}
}public class WiredMouse implements Mouse {@Overridepublic void make() {System.out.println("制造有线鼠标");}
}public interface MouseFactory {Mouse createMouse();
}public class WirelessMouseFactory implements MouseFactory {@Overridepublic Mouse createMouse() {return new WirelessMouse();}
}public class WiredMouseFactory implements MouseFactory {@Overridepublic Mouse createMouse() {return new WiredMouse();}
}public class Demo {public static void main(String[] args) {MouseFactory wirelessFactory = new WirelessMouseFactory();MouseFactory wiredFactory = new WiredMouseFactory();Mouse wirelessMouse = wirelessFactory.createMouse();Mouse wiredMouse = wiredFactory.createMouse();wirelessMouse.make(); // 输出:制造无线鼠标wiredMouse.make();    // 输出:制造有线鼠标}
}

3. 抽象工厂模式

代码实现:

public interface Mouse {void make();
}public interface Keyboard {void make();
}public class WirelessMouse implements Mouse {@Overridepublic void make() {System.out.println("制造无线鼠标");}
}public class WiredMouse implements Mouse {@Overridepublic void make() {System.out.println("制造有线鼠标");}
}public class WirelessKeyboard implements Keyboard {@Overridepublic void make() {System.out.println("制造无线键盘");}
}public class WiredKeyboard implements Keyboard {@Overridepublic void make() {System.out.println("制造有线键盘");}
}public interface DeviceFactory {Mouse createMouse();Keyboard createKeyboard();
}public class WirelessDeviceFactory implements DeviceFactory {@Overridepublic Mouse createMouse() {return new WirelessMouse();}@Overridepublic Keyboard createKeyboard() {return new WirelessKeyboard();}
}public class WiredDeviceFactory implements DeviceFactory {@Overridepublic Mouse createMouse() {return new WiredMouse();}@Overridepublic Keyboard createKeyboard() {return new WiredKeyboard();}
}public class Demo {public static void main(String[] args) {DeviceFactory wirelessFactory = new WirelessDeviceFactory();DeviceFactory wiredFactory = new WiredDeviceFactory();Mouse wirelessMouse = wirelessFactory.createMouse();Keyboard wirelessKeyboard = wirelessFactory.createKeyboard();Mouse wiredMouse = wiredFactory.createMouse();Keyboard wiredKeyboard = wiredFactory.createKeyboard();wirelessMouse.make(); // 输出:制造无线鼠标wirelessKeyboard.make(); // 输出:制造无线键盘wiredMouse.make();    // 输出:制造有线鼠标wiredKeyboard.make();  // 输出:制造有线键盘}
}

四、总结

工厂模式的三种主要形式及其适用场景。每种模式都有其独特的优点和适用范围,合理选择和应用这些模式可以显著提升软件设计的质量和效率。

  1. 简单工厂模式:简单工厂模式以其简洁性和易于理解的特点,非常适合产品种类较少且相对稳定的场景。它通过一个统一的工厂类集中管理对象的创建逻辑,使得客户端代码更加简洁。然而,随着产品种类的增加,简单工厂类的条件判断逻辑可能会变得复杂,这可能会降低代码的可维护性。

  2. 工厂方法模式:工厂方法模式通过将对象的创建逻辑分散到多个具体的工厂类中,有效地解决了简单工厂模式在面对产品种类频繁变化时的扩展性问题。每个具体工厂类负责创建一种具体的产品,这使得系统在添加新产品时更加灵活,只需新增相应的工厂类而无需修改现有代码。这种模式特别适合产品种类较多且可能频繁变化的场景,它不仅提高了代码的可扩展性,还符合开闭原则,即对扩展开放,对修改关闭。

  3. 抽象工厂模式:抽象工厂模式在处理多个相关产品族的创建时表现出色。它通过一个抽象工厂接口定义了一组创建相关产品的方法,具体工厂实现这些方法来生产特定产品族中的产品。这种模式使得系统能够在不依赖具体产品实现的情况下,灵活地切换不同的产品族。这对于需要支持多种产品组合的系统来说是一个巨大的优势,它不仅提高了代码的可维护性,还增强了系统的灵活性和可扩展性。

        在实际的软件开发中,选择合适的工厂模式需要综合考虑系统的复杂性、产品的种类和变化频率以及系统的扩展需求。简单工厂模式适合小型项目或产品种类较少的场景;工厂方法模式适用于产品种类较多且可能频繁变化的系统;而抽象工厂模式则更适合需要创建多个相关产品族的复杂系统。

        此外,工厂模式的应用还体现了面向对象设计的核心原则,如封装、多态和依赖倒置等。通过将对象的创建逻辑封装在工厂类中,客户端代码可以依赖于抽象而非具体实现,这使得系统更加灵活,能够更好地应对需求的变化。

        总之,工厂模式作为一种经典的创建型设计模式,为对象的创建提供了一种优雅的解决方案。它不仅能够提高代码的可读性和可维护性,还能够增强系统的扩展性和灵活性。在未来的软件设计中,合理运用工厂模式将有助于我们构建出更加健壮、灵活和易于维护的软件系统。

http://www.dtcms.com/wzjs/560202.html

相关文章:

  • 深圳专业做网站建设wordpress 复杂表单
  • 网站规划思想方法有哪些内容建设网站有哪些参考文献
  • 视频网站如何建设深汕特别合作区
  • 古色古香 网站模板大兴网站开发网站建设报价
  • 创建网站目录权限不备案的网站很慢
  • 桂林网站建设哪家好什么是网站托管
  • 石家庄做网络推广的网站网站建设好与管理在哪就业
  • 756ka网站建设alexa排名是什么意思
  • 备案 增加网站花卉网站建设的总结与
  • 营销类网站 英文旅游电子商务网站模板
  • 企业网站搭建网页游戏在线玩不用登录
  • 网站建设的软件知识有哪些内容搜狗推广登录平台
  • 东莞市建网站WordPress 门票
  • 网站建设文化信息管理咨询公司调研报告
  • 百度合作的网盟网站wordpress网页如何上传下载
  • 做第三方的qq互联接口时_回调到自己的网站时要延时很久是什么原因wordpress清除多余附件
  • 玩具网站建设wordpress所有分类目录的地址
  • 公司使用威联通nas做网站存储安庆做网站
  • 济南网站推广效果个人网站设计总结
  • 有做学历在网站能查的到的凡科网做网站要钱吗
  • lnmp wordpress网站郑州建筑工程有限公司
  • 接口网站开发网站做外链好嘛
  • 长椿街网站建设揭阳中小企业网站制作
  • 邢台网站建设联系电话网站兼容性是什么意思
  • 知道网站是wp程序做的如何仿站简答网站内容建设的时候内链重要性
  • 宝安区做外贸网站的公司网站空间提供商
  • 在服务器网站上做跳转页面跳转页面成都大丰五块石网站建设
  • 网页设计建立站点实验报告外包网站建设价格
  • 代做网站毕业设计在门户网站做产品seo
  • 信阳网站建设制作公司网站如何赚钱