(2)简单工厂模式

 一、概念

又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例 (对象创建工厂)。

优点 :客户端不需要再负责对象的创建,从而明确了各个类的职责 

缺点 :这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护 

二、UML图

三、代码示例

产品抽象类:phone

public abstract class AbstractPhone {
    public abstract void name();
}

产品实现类一:apple phone

public class ApplePhone extends AbstractPhone {
    @Override
    public void name() {
        System.out.println("apple phone");
    }
}

产品实现类二:xiaomi phone

public class XiaoMiPhone extends AbstractPhone {
    @Override
    public void name() {
        System.out.println("xiaomi phone");
    }
}

产品实现工厂类:

public class PhoneFactory {
    // 私有构造方法,禁止从创建工厂对象
    private PhoneFactory(){}
    
    public static AbstractPhone createPhone(String phoneName){
        if("xiaomi".equals(phoneName)){
            return new XiaoMiPhone();
        }
        if("apple".equals(phoneName)){
            return new ApplePhone();
        }
        return null;
    }
    //上述方法不想一直加if,可以拆成一个一个的方法
}

Test

public class OrderPhone {
    public static void main(String[] args) {
        // 手机类型:小米手机,苹果手机
        // 工厂:制造手机
        // 需要什么手机直接找工厂要

        //向工厂订购小米手机
        AbstractPhone xiaomi = PhoneFactory.createPhone("xiaomi");
        xiaomi.name();

        //向工厂订购苹果手机
        AbstractPhone apple = PhoneFactory.createPhone("apple");
        apple.name();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值