工厂模式【创建型模式】

目录

1.特点

2.模式与结构

2.1.模式

2.2.结构

3.实现

3.1.产品的抽象

3.2.产品的具体实现

3.3.工厂抽象类

3.4.工厂类实现类

4.应用场景


1.特点

        工厂模式是简单工厂的升级版本,在简单工厂模式中,把所有的创建细节交给了简单工厂,不符合开闭原则(在新增产品的时候需要对工厂进行修改),所以引进了简单工厂类,把产品和工厂进行抽象出来,只有那个产品才知道使用那个工厂进行加工。

2.模式与结构

2.1.模式

工厂方法模式的主要角色如下
    抽象工厂(Abstract Factory):提供了创建产品的接口,调用者通过它访问具体工厂的工厂方法 newProduct() 来创建产品。
    具体工厂(ConcreteFactory):主要是实现抽象工厂中的抽象方法,完成具体产品的创建。
    抽象产品(Product):定义了产品的规范,描述了产品的主要特性和功能。
    具体产品(ConcreteProduct):实现了抽象产品角色所定义的接口,由具体工厂来创建,它同具体工厂之间一一对应。

2.2.结构

 

3.实现

3.1.产品的抽象

//抽象产品:提供了产品的接口
​interface Product {public void show();}

3.2.产品的具体实现

//具体产品1:实现抽象产品中的抽象方法
​class ConcreteProduct1 implements Product {public void show() {
​        System.out.println("具体产品1显示...");
​}}
​//具体产品2:实现抽象产品中的抽象方法
​class ConcreteProduct2 implements Product {public void show() {
​        System.out.println("具体产品2显示...");
​}}

3.3.工厂抽象类

//抽象工厂:提供了厂品的生成方法
​interface AbstractFactory {public Product newProduct();}

3.4.工厂类实现类

//具体工厂1:实现了厂品的生成方法
​class ConcreteFactory1 implements AbstractFactory {
​public Product newProduct() {
​        System.out.println("具体工厂1生成-->具体产品1...");
​        return new ConcreteProduct1();
​}}
​//具体工厂2:实现了厂品的生成方法 
​class ConcreteFactory2 implements AbstractFactory {
​public Product newProduct() {
​        System.out.println("具体工厂2生成-->具体产品2...");
        return new ConcreteProduct2();
​}}

4.应用场景

客户只知道创建产品的工厂名称,而不知道具体的产品,如TCL电视工厂、海信电视工厂等
创建对象的任务由多个具体子工厂中的某一个完成,而抽象工厂只提供创建产品的接口。
客户不关心创建产品的细节,只关心产品的品牌
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值