工厂模式

工厂模式

简单工厂模式/Simple Factory

一句话总结:静态工厂模式,属于类创建型模式,根据参数的不同,返回不同类的实例,专门 定在这里插入图片描述
义了一个类来负责创建其他类的实例,被创建的实例有共同的父类

public class Simple {
    public static void main(String[] args) {
        Simples a = Simple.getInstance("a");//条件
        a.print();
    }
    // 判断 创建哪个实例
    public static Simples getInstance(String type){
     if(type.equals("a")){
         return new Simples1();
     }else{
         return new Simples2();
     }
    }
}
abstract class Simples{
    public abstract void print();
}
//不同的实现
class Simples1 extends Simples{
    @Override
    public void print() {
        System.out.println("Simples1");
    }
}
class Simples2 extends Simples{
    @Override
    public void print() {
        System.out.println("Simples2");
    }
}

工厂模式

一句话总结: 定义一个用于创建对象的接口(fac)让子类(create)决定实例化哪个类,工厂方法,使一个类的实例化延迟到子类
**通俗易懂版:**定义一个抽象产品(手机)然后实现不同的品牌/功能(苹果华为),创建一个抽象工厂类,实现不同的工厂生产不同的手机(返回对应的对象)
在这里插入图片描述

public class Create {
    public static void main(String[] args) {
        Phone hphone = new HphoneCreate().create();
        Phone iphoone=new IphoneCreate().create();
    }
}

//创建抽象产品
interface Phone{
}
//具体产品
class Iphone implements Phone{
    Iphone(){
        System.out.println("Iphone对象创建成功");
    }
}
class Hphone implements Phone{
    Hphone(){
        System.out.println("Hphone对象创建成功");
    }
}
//创建抽象工厂
interface Fac{
    Phone create();
}
//具体实现工厂
class IphoneCreate implements Fac{
    @Override
    public Phone create() {
        return new Iphone();
    }
}
class HphoneCreate implements Fac{
    @Override
    public Phone create() {
        return new Hphone();
    }
}

抽象工厂模式

抽象工厂模式使工厂模式的扩展,本来只能生产手机现在还能生产口罩,但是抽象工厂类会变动(增加一个口罩),违反开闭原则,对扩展开放,对修改关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值