`
jiagou
  • 浏览: 2533058 次
文章分类
社区版块
存档分类
最新评论

设计模式总结:一抽象,二法则,三特点,四原则 ,五关系

 
阅读更多

设计模式第二遍的学习.现在对设计模式做一个系统的总结.

设计模式学习的四个层次:

第一层,理解各个模式.知道各个模式是做什么用的.

第二层,对各个设计模式的代码实现.

第三层.知道在什么情况用哪个模式.

第四层.自己根据自己遇到的问题来设计模式.

经过这一个月的设计模式学习,现在已经通过了第一层,刚完成第二层,现在第三层有所接触,但还是好多知识理解的并不深刻.需要以后的实践来加深理解.用了一个星期的时间看大话设计模式这本书.也能感受到老师这样安排的深刻用意.虽然计算机已经成为我们主要的学习手段但是读书这个最基本的方式是不能放下的.同时看书能给自己带来另一种感觉,久违的新鲜感.通过对设计模式的学习和思考发现整本书都在讲的是以下五种内容.

一 抽象 二 法则 三 特点 四 原则 五 关系

一 抽象

抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。抽象主要是为了使复杂度降低,以得到较简单的概念,好让人们能够控制其过程来了解许多特定的对象。在大话设计模式中抽象的概念贯穿始终.是其他概念的基础.类的本身就是对对象的抽象,而抽象类和接口又是抽象上的抽象.理解抽象概念是学大话设计模式的一个基础,更是学习面向对象思想的一个基础.

二 法则:

1迪米特法则

迪米特法则也叫做最少知识原则,具体内容为如果两个类不必彼此直接通信,那么这两个类就不应当直接发生相互的作用.如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者来转发这个调用.在大话设计模式中的中介者模式淋漓精致的体现出了迪米特法则.

2接口隔离法则

接口隔离法则和两个概念相通,一个是迪米特法则,另一个是依赖倒转原则.接口隔离法则主要内容是:建立单一接口,不要建立臃肿庞大的接口.

三 特性:

1封装

封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程,我们不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。简单的去理解封装就是一个类就是封装.

2继承

从一个旧类派生一个新类的过程

3多态

接口的多种不同的实现方式即为多态。

四 原则:

1单一职能原则

单一职能原则是指就一个类而言,应该有且仅有一个引起它变化的原因.这样有利于适应需求的变化,从而使程序提高维护性,复用性,扩展性.使程序更加的灵活.所以在编程的时候在类的职责分离上多做思考,做到单一的职责.这样的代码和程序才具有生命力.

2开放封闭原则

开放封闭原则是说,对软件实体(类,模块,函数等)应该可以扩展,但不可以修改.也就是对扩展是开放的,对修改是封闭的.你可以扩展一个类,但不能去修改一个类,否则就是违背了开闭原则.开闭原则告诉我们在编程的时候尽量要使这个类足够的好,写好之后就不能去修改,如何有新的需求,就增加一些类来满足需求而不是修改原来的类.开放封闭原则同时也是面向对象设计的核心所在.

3依赖倒转原则

针对接口编程,不要对实现编程.高层模块不应该依赖底层模块,两个都应该依赖抽象.抽象不应该依赖细节,细节应该依赖抽象.依赖倒转是面向对象设计的标志,如果程序中所有依赖关系都是终止于抽象类或者接口,那么就是面向对象设计,繁殖就是过程化的设计.

4里氏代换原则

子类型必须能够替换掉他们的父类.本原则使得继承复用成为可能只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才可以真正的复用,而子类可以在父类的基础之上增加新的功能.

五 关系:

五种关系分别是 依赖,关联(聚合,组合),泛化,实现.关于这五种关系刘冰讲解的非常的好,这里就不多赘述了.

以上五个内容我觉得是设计模式的根本和本质的东西,各种各样的模式都在这些原则和关系的基础上进行的变化.我认为学习设计模式最终要的还是要学习设计模式的思想.

分享到:
评论

相关推荐

    Head First 设计模式 JAVA源码

    所有的设计模式Java实现。 第一讲:简单工厂模式 第二讲:工厂方法模式 第三讲:抽象工厂模式 第四讲:工厂模式在开发中的运用 第五讲:单例模式 第六讲:原型模式 ...第三十讲:设计模式总结

    24种设计模式介绍与6大设计原则

    总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元...

    C#设计模式.PDF

    完整的C#设计模式PDF版 C#设计模式(1) 4 一、 C# 面向对象程序设计复习 5 二、 设计模式举例 5 三、 先有鸡还是先有蛋? 7 四、 大瓶子套小瓶子还是小瓶子套大瓶子? 8 五、 .net本质 9 C#设计模式(2) 11 一、 ...

    C#设计模式大全

    二、 设计模式举例 三、 先有鸡还是先有蛋? 四、 大瓶子套小瓶子还是小瓶子套大瓶子? 五、 .net本质 C#设计模式(2) 一、 "开放-封闭"原则(OCP) 二、 里氏代换原则(LSP) C#设计模式(3) 三、 依赖...

    设计模式PPT.rar

    23第二十三讲状态模式 24第二十四讲命令模式 25第二十五讲访问者模式 26第二十六讲开放封闭原则 27第二十七讲单一职责原则 28第二十八讲里氏代换原则 29第二十九讲依赖倒转原则 30第三十讲迪米特法则 31第三十一讲...

    24种设计模式与6大设计原则

    策略模式[STRATEGY PATTERN] 代理模式[PROXY PATTERN] 单例模式[SINGLETON PATTERN] 多例模式[MULTITION PATTERN] ...六大设计原则:单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特法则,开闭原则。

    设计模式Demo

    二、设计模式的六大原则 1、开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序...

    尚硅谷设计模式源码笔记课件.zip

    设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种实现)、抽象工厂...

    设计模式所有实验及实验报告及代码.zip

    软件设计模式概述 2GoF 的 23 种设计模式 3UML中的类图及类图之间的关系 4开闭原则 5里氏替换原则 6依赖倒置原则 7单一职责原则 8接口隔离原则 9迪米特法则 10合成复用原则 11创建型模式的特点和分类 12单例模式 13...

    C++设计模式

    (一)简单工厂模式 2 (二)策略模式 4 策略与工厂结合 6 单一职责原则 6 开放――封闭原则 6 里氏代换原则 7 依赖倒转原则 7 (三)装饰模式 7 (四)代理模式 9 (五)工厂方法模式 11 (六)原型模式 13 (七)...

    设计模式总结

    设计模式总结、 -- 一,六大设计原则 一,六大设计原则 单一职责原则(Single Responsibility Principle,简称SRP) 有且仅有一个原因引起类的变更。 里氏替换原则(Liskov Substitution Principle,LSP) 只要...

    JAVA设计模式六大原则详细讲解(面向对象语言通用)

    1.单一职责原则: 不要存在多于一个导致类变更的原因 2.里氏替换法则:子类可以扩展父类的功能,但不能改变父类原有的功能 3.依赖倒置原则:面向接口编程 4.接口隔离原则: 客户端不应该依赖它不需要的接口;一个类对...

    java设计模式

    目录: 前 言 第一部分 大旗不挥,谁敢冲锋——热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 ...附录:23个设计模式

    Java 设计模式

    java的设计模式大体上分为三大类: 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元...

    design-pattern-java.pdf

    基础知识 基础知识设计模式概述 从招式与内功谈起——设计模式概述(一) 从招式与内功谈起——设计模式概述(二) 从招式与内功谈起——设计模式概述(三) 面向对象设计原则 面向对象设计原则之单一职责原则 面向...

    用 Objective-C 实现《大话设计模式》书中的例子,并用一些 Objective-C 的特性对例子的实现加以优化

    设计模式的基本原则非常重要,只要真正深入地理解了设计原则,很多设计模式其实就是原则的应用而已,或许在不知不觉中就在使用设计模式了: 单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因。 ...

    设计模式,软件开发者必读

    设计模式的个人总结教材,适合IT专业人士研究,目录如下: 序言 概念 6 1.1 设计模式的定义 6 1.2 设计模式的作用 6 1.3 设计模式的由来 6 1.4 设计模式的分类 7 1.5 OO设计七原则 7 1.5.1 开-闭原则(OPEN-CLOSED ...

    23种设计模式(Java版,超详细!)

    设计模式是一种抽象化的思维方式,可以帮助开发人员更好地组织和设计他们的代码。它们提供了一种通用的框架,可以用于解决各种不同的软件设计问题。设计模式不是完整的代码,而是一种描述问题和解决方案之间关系的...

    《设计模式实训教程》【PPT+类图与代码+样章】

    3.1.1设计模式 3.1.2创建型模式概述 3.1.3简单工厂模式 3.1.4工厂方法模式 3.1.5抽象工厂模式 3.1.6建造者模式 3.1.7原型模式 3.1.8单例模式 3.2实训实例 3.2.1简单工厂模式实例之图形工厂 3.2.2工厂方法...

Global site tag (gtag.js) - Google Analytics