【设计模式】——宏观把控

        【设计模式】——宏观把控_第1张图片


【面向对象】


概念

面向对象设计模式描述的是软件设计,因此它是独立于编程语言的,但是面向对象设计模式的最终实现仍然要使用面向对象编程语言来表达,如Visual Basic、.NET、C++/CLI等。例如:在金庸小说中各个门派的招式是我们的编程语言,而内功心法是我们的设计模式,只有两者合二为一方可把功夫发挥极致。


三大特性


封装

定义:每个对象都包含它能进行操作所需要的所有信息,对象不必依赖其他对象来完成自己的操作,即隐藏内部实现。

优点:减少耦合,类内部的实现可以自由修改,类具有清晰的对外接口。


继承

定义:代表了一种is a的关系,如果两个对象A和B,可以描述为B是A,则表明B可以继承A。即复用现有代码。 

特点:子类拥有父类非private的属性和功能;子类拥有父类没有的属性和功能;子类还可以以自己的方式实现父类的功能(方法的重写)。 


多态

定义:不同的对象可以执行相同的动作,但是要通过它们自己的实现代码来执行。

特点:子类以父类身份出现;子类在工作时以自己的方式实现;子类以父类的身份出现时,子类特有的属性和方法不可以使用。

推荐:《面向对象分析和面向对象设计》


【概述】


定义


设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编制真正工程化。


发展历程


模式的产生:美国Christopher Alexander博士及其研究团队用了约20年的时间,对住宅和周边环境进行了大量的调查研究和资料收集工作,发现人们对舒适住宅和城市环境存在一些共同的认同规律,Christopher Alexander把这些认同规律归纳为253个模式,对每一个模式都从前提条件、目标问题、 解决方案三个方面进行了描述,并给出了从用户需求分析到建筑环境结构设计直至经典实例的过程模型。

高度提升:1992年“四人组(Gang of Four,简称GoF)”第一次将设计模式提升到理论高度,并将之规范化。该书提出了23种基本设计模式。时至今日,在可复用面向对象软件的发展过程中,新的设计模式仍然不断出现。


结构


设计模式用于在特定的条件下为一些重复出现的软件设计问题提供合理的、有效的解决方案。它包括:问题描述,前提条件,解法和效果。例如:建造者模式,首先我们知道它是为了解决规范化的创建一个复杂对象,前提条件是对象之间都有基本的元素和组成,解法是把复杂对象的构建和它的表示分离开,达到的效果是客户端不必知道产品内部组成的细节,因为产品已经流程化。另外四大要素:模式名称(pattern name)、问题(problem)、解决方案(solution)、效果(consequences)。


【原则】


设计模式整体有七个原则分别是:单一职责原则、开放——封闭原则、依赖倒转原则、里氏转换原则、迪米特法则、合成、聚合复用原则、接口隔离原则。具体:《设计模式原则》


【类型】


创建型5


创建型模式,就是创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。关注的是对象的创建,创建型模式将创建对象的过程进行了抽象,也可以理解为将创建对象的过程进行了封装。


解析:最初为了解决业务和对象分离开来,我们引入了简单工厂模式,但是简单工厂违背了开放—封闭原则,也就是很难扩展新的功能,于是工厂方法应用而生,它定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法是表示增加同一等级结构的产品;抽象工厂是不同产品族的切换。如果遇到完全相同的等级结构的产品,于是原型模式就应用而生。但是如果只是大的框架相同,内容和细节可以不同,就需要建造者模式。极端模式就是单例模式,只有一个实例,并提供访问它的全局变量。


【设计模式】——宏观把控_第2张图片


结构型7


结构型模式,是为解决怎样组装现有的类,设计他们的交互方式,从而达到实现一定的功能的目的。


解析:用适配器把他们都连接起来,根据连接不同类的接口方式可以和代理、外观、桥接模式,代理模式是针对单个对象,它是完全代替原对象的;外观模式其实就是起到门面的作用,如功能内容都齐全了但是界面我不喜欢,那么我只需要改变一下界面就好了;桥接模式其实就是把对象按照不同的标准分类,分类后的对象可以独立地变化,如手机品牌和软件,无论哪一个改变都不影响其他的。适配器是两个单独的个体之间的联系,而组合是整体和部分的联系,它定义了一个固定的模式,从而保证对象的一致性,由此产生享元模式,减少实例化的类。适配器适配的是内容,而装饰只是改变形式,首先需要有一个具体对象,然后有装饰的的物件,只是外在的形式改变了。


【设计模式】——宏观把控_第3张图片

链接《设计模式之结构型》


行为型11


行为型模式,涉及到算法和对象间职责的分配,行为模式描述了对象和类的模式,以及它们之间的通信模式。一些行为对象模式描述了一组对等的对象怎样相互协作以完成其中任何一个对象都无法单独完成的任务。


解析:根据对象的有四种分类:定义算法,对象状态,对象操作,对象关系。对象的算法封装好支持算法变化是策略模式;算法的框架设定,但是内容是可以改变的是模板模式。对象可以执行的操作若是增加操作使访问者,针对于特定对象的操作使命令者模式,针对于多对象的是职责链模式。对象的状态若需保存时备忘录模式,根绝对象的行为决定对象的状态是状态模式。(状态模式下一对象是编译好的,但是职责链中下一对象是在客户端设定的)。对象之间的关系可以分类,观察者是一对多的一种依赖,支持通信对象的变化;中介者,顾名思义就是在对象之间充当中间人,封装一系列对象交互,实现集中控制;迭代器模式针对结合内部的关系,不暴露内部信息。


【设计模式】——宏观把控_第4张图片


师傅验收后又改正的,谢谢师傅啦。以后有需要的再补充吧。

你可能感兴趣的:(#,编程思想)