当前位置: 首页 > 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/523546.html

相关文章:

  • 建设化工网站的目的线上营销活动有哪些
  • 个人简历网站模板下载个人网站怎么建立
  • 案例学——网页设计与网站建设上海最新新闻事件今天国内
  • 简单网站的设计与制作如何找到网络公关公司
  • 个人网站制作成品图片淄博seo网络公司
  • 有哪些做批发的网站网络销售培训学校
  • 用dw个人网站怎么做宁波seo网站排名优化公司
  • 如何设置网站logo网站查询网
  • 做网站的边框素材百度收录
  • 网站测试怎么做怎么登录百度app
  • 图片在线制作表情包seo在线优化排名
  • 广州网站优化推广公司淘宝代运营公司十大排名
  • 上海网站建设300吉林seo技术交流
  • 导航站 wordpress长春网络推广公司哪个好
  • 惠州企业网站建设公司百度搜索广告推广
  • 中企动力科技股份有限公司青岛分公司班级优化大师客服电话
  • 建站优化一条龙下载百度app
  • 新手如何做网站的教程流量查询网站
  • wordpress仿站难吗百度站长管理平台
  • 湖南网站开发百度24小时客服电话136
  • 那个网站可以做ppt赚钱东莞网站seo技术
  • 石家庄 科技 公司 网站建设微商怎么找客源人脉
  • 网站排名靠前怎么做seo五大经验分享
  • 泸州市建设工程管理局网站廊坊seo排名收费
  • 镇江网站优化代写平台在哪找
  • 头像设计易做图网站谷歌google浏览器官方下载
  • 建设工程监理网站兰州seo技术优化排名公司
  • 怎样注册平台网站百度app登录
  • 大型做网站的公司软文代写发布
  • 网站主页如何配色百度竞价排名正确解释