工厂模式

文档地址:《设计模式之禅》​​​​​​​

第八章:工厂模式(Factory Pattern)

    切入故事:女娲造人的故事

    定义: Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to subclasses.(定义一个用于创建对象的接口, 让子类决定实例化哪一个类。 工厂方法使一个类的实例化延迟到其子类。

    通用类图

    优点

            1: 良好的封装性, 代码结构清晰。

            2: 工厂方法模式的扩展性非常优秀。

            3: 屏蔽产品类。(如JDBC)

            4: 工厂方法模式是典型的解耦框架。

    使用场景

            1: 工厂方法模式是new一个对象的替代品, 所以在所有需要生成对象的地方都可以使用, 但是需要慎重地考虑是否要增加一个工厂类进行管理, 增加代码的复杂度。

            2: 需要灵活的、 可扩展的框架时, 可以考虑采用工厂方法模式。

            3: 工厂方法模式可以用在异构项目中。

            4: 可以使用在测试驱动开发的框架下。(目前比较少见)

    扩展

            1:简单工厂(又称静态工厂)

        2:多工厂类

        3:替代单例模式

        4:延迟初始化

    个人总结调用者完全不需要知道对象是怎么生成的,只要找到对应的factory接口,然后,给出想要的对象的名称,就可以生成一个需要的对象。

 

第九章:抽象工厂 (Abstract Factory Pattern)

    切入故事:女娲的失误

    定义: Provide an interface for creating families of related or dependent objects without specifyingtheir concrete classes.(为创建一组相关或相互依赖的对象提供一个接口, 而且无须指定它们的具体类。

    通用类图

    优点

            1: 封装性。

            2: 产品族内的约束为非公开状态。

    缺点: 产品族扩展非常困难。

    应用场景: 一个对象族(或是一组没有任何关系的对象)都有相同的约束, 则可以使用抽象工厂模式。

    个人总结需要的某种对象,可以找到某对象的抽象Factory,就可以生成一个需要的对象,而且,可以对对象的某些属性和方法提出具体的要求,弊端是,会生成大量的抽象factory.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值