设计模式-工厂模式

设计模式-工厂模式

工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。

即工厂模式是用来创建对象的,是吧。
但是工厂有大有小,有好有差,现实中是这样吧吧。

根据工厂的能力,我们将工厂模式分为3种:

1)简单工厂模式
简单工厂,只会生产一种产品

例如我们要生产苹果手机:
首先苹果手机,自己肯定是不会生产的哈, 即你不能去new(好像是废话。。。。。)

//这个工厂就会生产iPhone手机
public IpnoneFactory
{
    public static IPhone createIphone()
    {
        /*我生产了Iphone*/
    }   
}   

2) 工厂方法模式
这个工厂就生产产品而言,就厉害点了。
例如, 这个工厂可以生产手机, 但他可以生产许多种手机,例如华为、三星、Moto。。。。。。

//大工厂 (富士康可以吗。。。。)
public interface PhoneFactory {
    void createPhone();
}

//具体生产产品
public class MotoPhoneFactory implements PhoneFactory {
    @Override
    public void createPhone() {
        System.out.println("MotoPhone....");
    }
}

public class SamsungPhoneFactory implements PhoneFactory {
    @Override
    public void createPhone() {
        System.out.println("SamsungPhone.....");
    }
}


public class TestFactory {
    public static void main(String[] args) {
        PhoneFactory factory = new MotoPhoneFactory();
        Phone phone = factory.createPhone();
    }
}

3)抽象工厂模式

这个工厂相比于上面的,他可以生产更多种类的产品.

public abstract class AbstractFactory {
    public abstract Phone createPhone();
    public abstract PC createPC();
    public abstract Camera createCamera();
}


//具体工厂类,(好像还是只有富士康能胜任)
public class FuShiKangFactory extends AbstractFactory{
    @Override
    public Phone createPhone() {
        /*.......*/
    }
    @Override
    public PC createPC() {
        /*.........*/
    }
    @Override
    public Camera createCamera() {
        /*.....*/
    }
}


//测试类
public class Test {
    public static void main(String[] args) {
        AbstractFactory f = new FuShiKangFactory();
        Phone phone = f.createPhone();
        PC pc = f.createPC();
        Camera camera = f.createCamera();
    }
}

以上是个人,对工厂模式的简单理解,若理解错误,请见谅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值