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

编程入门 行业动态 更新时间:2024-10-16 02:31:13

简单<a href=https://www.elefans.com/category/jswz/34/1770822.html style=工厂模式、工厂方法模式、抽象工厂模式"/>

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

简介

将实例化代码提取出来,放到一个类中统一管理和维护,达到和主项目依赖关系的解耦,从而提高项目的扩展性和维护性。

工厂模式将复杂的对象创建工作隐藏起来,而仅仅暴露出一个接口供客户使用,具体的创建工作由工厂管理而对用户封装,将对象的创建和使用分离开来,降低耦合度,便于管理,能够很好的支持变化。

例如:有多种披萨实现类,有多个披萨店类,每个商店都需要依赖多种披萨。

加入工厂模式后,披萨店仅依赖披萨工厂类,由披萨工厂类创建披萨(依赖所有披萨实现类),这样在新增披萨类时仅需要修改披萨工厂类,不需要逐一修改披萨店类,降低了系统的耦合性。

1.简单工厂模式(静态工厂模式)

代码示例

public class PizzaFactory{public static Pizza getPizza(String name){if("番茄披萨".equals(name)){return new PotatoPizza();}else if ("土豆披萨".equals(name)){return new TomatoPizza();}else {return null;}}
}

2.工厂方法模式

创建一个父类工厂,把实例化功能抽象成抽象方法,将工厂实例化功能推迟到子类实现。解决存在多个不同类别工厂的问题。

代码示例

父类工厂:

public abstract class PizzaFactory{public abstract Pizza getPizza(String name);
}

子类工厂:

class BeijingPizzaFactory extends PizzaFactory{@Overridepublic Pizza getPizza(String name) {if("番茄披萨".equals(name)){return new PotatoPizza();}else if ("土豆披萨".equals(name)){return new TomatoPizza();}else {return null;}}
}

3.抽象工厂模式

提供一个接口,用于创建相关或依赖对象的家族而不需要明确指定具体类。

抽象工厂更多的是一种思想,能够对多个产品进行分类。

工厂方法模式可以对单个产品进行分类,比如鼠标可以分为联想鼠标、戴尔鼠标、罗技鼠标等。而抽象工厂是对产品进行分类,比如整机可以分为联想的整机(包括键盘鼠标等一套设备)、戴尔的整机等。

更多推荐

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

本文发布于:2023-11-16 17:19:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1628427.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:工厂   模式   抽象   简单   方法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!