设计模式之抽象工厂模式学习笔记

前言

在学习抽象工厂模式之前,最好先学习了解简单工厂模式工厂方法模式。这样会对学习抽象工厂模式有帮助,因为抽象工厂模式也是基于工厂方法模式的。

解释

说白了就是工厂的工厂,以一个超级工厂为核心,围绕这个超级工厂去创建其他工厂,最后工厂再去用它自己的生产线去生产鼠标、键盘…

特点

有多个抽象产品类,具体工厂类能创建多个具体产品类实例。

实现

1.抽象工厂

也唤作超级工厂,是工厂的工厂。具体的联想工厂、惠普工厂的创建,都是围绕这个超级工厂展开的

/**
 * 抽象工厂
 */

public abstract class ComputerFactory {

    //生产键盘
    public abstract IKeyboard createKeyboard();

    //生产屏幕
    public abstract IScreen createScreen();
}

2.产品接口

为以下产品定义的接口

public interface IKeyboard {
    //键盘
    void keyboard();
}
public interface IScreen {
    //屏幕
    void screen();
}

3.根据产品接口定义不同对象

实现抽象接口,定义不同的对象。当然了,除了键盘除了雷蛇,还有HHKB、达尔优;屏幕除了三星,还有京东方…

public class RazerKeyboard implements IKeyboard {
    @Override
    public void keyboard() {
        System.out.print("雷蛇机械键盘");
    }
}
public class SamsungScreen implements IScreen {
    @Override
    public void screen() {
        System.out.print("三星屏幕");
    }
}

4.实现具体工厂类

除了美帝良心想,还有铁板熊掌普等其他工厂

/**
 * 联想工厂
 */
public class LenovoFactory extends ComputerFactory {
    @Override
    public IKeyboard createKeyboard() {
        return new RazerKeyboard();
    }

    @Override
    public IScreen createScreen() {
        return new SamsungScreen();
    }
}

5.客户端调用

public class UserClient {
    public static void main(String []args){

        //美帝良心想工厂
        LenovoFactory foxconnFactory = new LenovoFactory();
        foxconnFactory.createKeyboard().keyboard();//代工雷蛇键盘生产
        foxconnFactory.createScreen().screen();//代工三星屏幕生产

		...
		//这里如果我不喜欢拯救者,想换个暗影精灵,只需要创建hp工厂对象,由hp工厂去生产即可
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值