设计模式-->创建型模式-->抽象工厂模式

1、抽象工厂(抽象的抽象)(超级工厂 创建工厂) 不可以增加产品 可以增加产品簇(大类 )

产品族:一个品牌下面的所有产品;例如华为下面的手机,路由器,电脑 称为华为的产品族;

产品等级:多个品牌下面的同种产品;例如华为和小米下面的手 称为一个产品等级;

 

 

//抽象工厂接口
package com.ljb.absFactoryPattern;

/**
 * Copyright (C), 2022-2030, Chongqing Mac info. Co., Ltd.
 *
 * @author Sw_Ljb
 * @version 1.0
 * @ClassName produceFactory
 * @Date 2022/4/20下午5:15
 */
public interface produceFactory {
    Iphone produceOnePhone();
    Router produceOneRouter();
}
//产品接口
package com.ljb.absFactoryPattern;

/**
 * Copyright (C), 2022-2030, Chongqing Mac info. Co., Ltd.
 *
 * @author Sw_Ljb
 * @version 1.0
 * @ClassName IphoneFactory
 * @Date 2022/4/20下午4:59
 */
public interface Iphone{

    void open();
    void call();
    void send();
    void close();
}
//产品接口
package com.ljb.absFactoryPattern;

/**
 * Copyright (C), 2022-2030, Chongqing Mac info. Co., Ltd.
 *
 * @author Sw_Ljb
 * @version 1.0
 * @ClassName ProductFrotory
 * @Date 2022/4/20下午5:00
 */
public interface Router {
    void open();
    void close();
    void throwWifiSignal();
}

一个产品簇的实现:

//工厂接口的实现类
package com.ljb.absFactoryPattern;

/**
 * Copyright (C), 2022-2030, Chongqing Mac info. Co., Ltd.
 *
 * @author Sw_Ljb
 * @version 1.0
 * @ClassName HuaweiProductFactor
 * @Date 2022/4/20下午5:14
 */
public class HuaweiProductFactor implements produceFactory{


    @Override
    public Iphone produceOnePhone() {
        return new HuaweiPhone();
    }

    @Override
    public Router produceOneRouter() {
        return new HuaweiRouter();
    }
}
package com.ljb.absFactoryPattern;

/**
 * Copyright (C), 2022-2030, Chongqing Mac info. Co., Ltd.
 *
 * @author Sw_Ljb
 * @version 1.0
 * @ClassName Huawei
 * @Date 2022/4/20下午5:10
 */
public class HuaweiPhone implements Iphone {
    @Override
    public void open() {
        System.out.println("开机");
    }

    @Override
    public void call() {
        System.out.println("打电话");
    }

    @Override
    public void send() {
        System.out.println("发消息");
    }

    @Override
    public void close() {
        System.out.println("关机");
    }
}
package com.ljb.absFactoryPattern;

/**
 * Copyright (C), 2022-2030, Chongqing Mac info. Co., Ltd.
 *
 * @author Sw_Ljb
 * @version 1.0
 * @ClassName HuaweiRouter
 * @Date 2022/4/20下午5:11
 */
public class HuaweiRouter implements Router{

    @Override
    public void open() {
        System.out.println("开机");
    }

    @Override
    public void close() {
        System.out.println("关机");
    }

    @Override
    public void throwWifiSignal() {
        System.out.println("抛出无线信号");
    }
}

抽象工厂模式优点:优于扩展,如果有新的产品簇的加入 只要各自实现抽象的接口即可,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值