java设计模式---3种工厂模式核心原理、区别总结

一、简单工厂模式:

    1.原理:

        普通类作为工厂类

    2.特点:

        1.1 对用户而言------很不方便------用户需要指定所需产品的种类。

        1.2 耦合度高------公共的逻辑和私有的逻辑都耦合在一个工厂类中实现。

        1.3 可扩展性差------增加种类时,需要更改公用的工厂类中的逻辑。

        1.4 冗余代码少------不同种类公共的逻辑都可以在工厂类中公用。

    3.适用场景:

        工厂业务逻辑简单且稳定的场景。

二、工厂方法模式:

    1.原理:

        实现了工厂接口的普通类作为工厂类

    2.特点:

        1.1 对用户而言------在一定程度上方便了用户(用户只需要选择所需的抽象工厂类)。

        1.2 耦合度低------通过接口的不同实现类降低了耦合度,但是。

        1.3 可扩展性高------增加种类时,只需要增加工厂类就可以了。

        1.4 冗余代码较多------无法将公共的逻辑抽象出来(因为接口中不能写逻辑)。

    3.适用场景:

        工厂业务逻辑复杂且各种类公共的工厂业务逻辑少。

三、抽象工厂模式:

    1.原理:

        继承自抽象工厂类的普通类作为工厂类

    2.特点:

        1.1 对用户而言------很大程度上方便了用户(用户只需要选择所需的产品)。

        1.2 耦合度低------通过抽象类的不同子类降低了耦合度。

        1.3 可扩展性高------增加种类时,只需要增加工厂类就可以了。

        1.4 荣域代码少------可以将公共的逻辑抽象到抽象工厂类中。

    3.适用场景:

        工厂业务逻辑复杂,且各种类公共的业务逻辑较多。

附上手写工厂模式的demo地址:

https://github.com/18394093929/DesignPattenDemos.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值