菜鸟学设计模式系列笔记之创建型模式开篇

设计模式是“封装变化”方法的最佳阐释

无论是创建型模式、结构型模式、还是行为型模式,归根结底都是寻找软件中可能存在的“变化”,然后利用抽象的方式对这些变化进行封装。

由于抽象没有具体的实现,就代表了一种无限可能性,使得其扩展成为了可能。

经典设计模式都是在寻找软件中的可能变化,并封装这些变化。

封装通常的理解:将数据(属性)和对数据的操作(方法)放到一个程序单元(类)中,从而使得概念上相关的数据和操作在编程语言上相关;正确的理解:信息隐藏——隐藏细节,对对象内部细节的隐藏,对抽象概念的具体实现的隐藏,对设计/实现细节的隐藏。封装的关键:合理的隐藏与公开。封装的目的:对实现的封装

创建模式(Creational Pattern)对类的实例化过程进行抽象,能够将软件模块中的对象创建和对象的使用分离。

创建模式分为两种:

(1)类的创建模式:类的创建模式使用继承关系,把类的创建延迟到子类,从而封装了客户端将得到哪些具体类的信息,并且隐藏了这些类的实例是如何被创建和放在一起的。

(2)对象的创建模式:把对象的创建过程动态地委派给另外对象,从而动态地决定客户端将得到哪些具体类的实例,以及这些类的实例是如何被创建和组合在一起的。

创建型模式在创建什么,由谁创建,何时创建等方面都为软件设计者提供尽可能大得灵活性

创建型模式隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的。


工厂模式:

工厂模式专门负责将大量有共同接口的类实例化

工厂模式可以动态决定将哪一个类实例化,不必事先知道每次实例化哪个类。


工厂模式有三种形态:

简单工厂模式Simple Factory ,静态工厂方法模式

工厂方法模式Factory Method,多态性工厂模式

抽象工厂模式Abstract Factory,工具箱模式


Simple Factory   由一个工厂对象决定创建出哪一种产品类的实例

Factory Method  用一个virtual method 完成创建过程

Abstract Factory 一个product族的factory method构成一个facctory接口

Singleton  单实例类型。有构造函数,一个静态变量,以及一个静态方法对实例化进行控制和限制

Builder      通过一个构造算法和一个builder接口把构造过程与客户隔离开

Prototype  通过product原型来构造product,Clone +prototype manager

Factory Method 是基础,Abstract Factory 是它的扩展

Factory method 、Abstract Factory、Prototype都涉及到类层次结构中对象的创建,有所取舍

Prototype 需要Prototype Manager 

Factory Method 需要依附一个Creator 类

Abstract Factory需要一个平行的类层次

Builder 往往适合于特定的结构需要,它所针对的product比较复杂

Singleton 有比较强烈的物理意义,可以用在很多细微的地方,不一定与类的层次关联





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值