设计模式学习笔记

依赖倒置原则:
依赖倒置原则的本质就是通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合。
遵循以下几个规则:
1.每个类尽量都有接口会抽象类,或者抽象类和接口两者都具备
2.变量的表面类型尽量是接口或者抽象类
 
单例模式:
单例模式的思路是:一个类能返回一个对象的引用(并且永远是同一个)和一个获得该实例的方法(静态方法,通常使用 getInstance 名称)。那么当我们调用这个方法时,如果类持有的引用不为空就返回该引用,否者就创建该类的实例,并且将实例引用赋值给该类保持的那个引用再返回。同时将该类的构造函数定义为私有方法,避免其他函数使用该构造函数来实例化对象,只通过该类的静态方法来得到该类的唯一实例。
 
代理模式:
代理模式:為其他對象提供一种代理以控制这个对象的访问
代理模式也叫做委托模式,它是一项基本设计技巧。许多其他的模式,如状态模式,策略模式,访问者模式本质上是在更特殊的场合采用了委托模式
抽象主题角色:可以是接口,也可以是抽象類,是一個最普通的业务类型定义
具体主题角色:也叫做被委托角色。是业务逻辑的具体执行者
代理主题角色 他负责对真实角色的应用
代理模式意义:为其他对象提供一种代理以控制对这个对象的访问
 
建造者模式:
1.首先需要车辆模型抽象类 定义整体车辆模型
2.根据不同的需求 设计不同车辆模型代码 如 奔驰车模型和宝马车模型
3.在场景中实现车辆模型
4.抽象汽车组装者
5.实例化不同车的组装者
建造者模式要表达的核心意义:建造者要怎样去建造一个对象,是零件的组装,组装顺序不同对象效能也不同,这才是建造者模式要表达的核心思想
建造者模式最主要的功能是基本方法的的调用顺序安排,也就是这些基本方法已经实现了,通俗的说就是零件的装配,顺序不同产生的对象也不同。而工厂方法的重点则是创建,创建零件是它的主要职责,组装顺序则不是它关心的
使用建造者模式需要
1.产品类 通常实现了模板方法模式,也就是有模板方法和基本方法 通常它是一个组合或继承
2.Builder抽象建造者 规范产品的组建 一般是由子类实现
3.consreteBuilder具体建造者 实现抽象类定义的所有方法,并返回一个组建好的对象
3.director 导演类 负责安排已有模块的顺序,然后告诉builder开始建造 
 
建造者模式(也叫做 生成器模式 )的定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
 
命令模式:
 命令模式,通过command对象,连接接收者和调用者,降低了两者的耦合度,便于代码的修改和维护。命令模式提高了代码的模块化程度,但降低了代码的可阅读性,增加了代码的难度,所以只有在需要把操作和调用分离时,或需要对操作进行规范化处理时再用它。
 工厂方法模式:
 工厂方法模式是每个抽象产品派生多个具体产品类,每个抽象工厂类派生多个具体工厂类,每个具体工厂类负责一个具体产品的实例创建。 
抽象工厂模式:

抽象工厂模式:就是对功能类单独创建工厂类,这样就不必修改之前的代码,又扩展了功能。
模板方法定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法是一种代码复用的基本技术,在类库中尤为重要,因为他们提取了类库中的公共行为。

 
posted @ 2017-06-27 14:24  若栖1017  阅读(90)  评论(0编辑  收藏  举报