设计模式学习总结

       之前一直是面向过程编程,前段时间因为某些原因需要更好的去理解一下面向对象思想精髓,在别人的推荐下看了《大话设计模式》这本书。通过对29个模式的学习,不仅仅了解了设计模式是个什么回事,也稍微加深了一点对面向对象(Object-oriented)技术。面向对象技术关注的是对象,对象的优点在于,可以定义自己负责的事物,作要求它自己的事情。对象应该自己负责自己,而且应该清楚地定义责任。它具有三大特征:封装、多态、继承。

       封装(Encapsulation),也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装可以隐藏实现细节,使得代码模块化。

       继承性(Inheritance)是指,在某种情况下,一个类会有“子类”。子类比原本的类(称为父类)要更加具体化,也就是说子类会继承父类的属性和行为,并且也可包含它们自己的。

       多态(Polymorphism)是指由继承而产生的相关的不同的类,其对象对同一消息会做出不同的响应。

       设计模式是面向对象技术的发展,设计模式中的六大原则与面向对象技术中的五大原则有着异曲同工之妙。

       它们分别是单一职责原则(SRP)开放-封闭原则(OCP)依赖倒转原则(DIP)里氏代换(LSP)迪米特法则(LOD)合成/聚合复用原则(CARP)。SRP是基本,OCP是目的,DIP为手段,LSP是继承复用的基础,ISP(InterfaceSegregation
Principle 接口隔离原则,面向对象五大原则之一)是实现LOD的手段之一,CARP是复用的原则 。

       29个具体的模式是六大原则的体现,同时它们也能分成创建型模式、结构型模式和行为型模式。

(详细模式介绍大家可以参考一下这三篇博客:创建型设计模式结构型设计模式行为型设计模式

时间: 2024-07-31 21:32:40

设计模式学习总结的相关文章

设计模式学习笔记系列

设计模式学习笔记(二十二)-FlyWeight享元模式 设计模式学习笔记(二十一)-Composite模式 设计模式学习笔记(二十)-Visitor访问者模式 设计模式学习笔记(十九)-Chain of Responsibility职责链模式 设计模式学习笔记(十八)-Mediator中介者模式 设计模式学习笔记(十七)-Memento备忘录模式 设计模式学习笔记(十六)-Proxy模式 设计模式学习笔记(十五)-State模式 设计模式学习笔记(十四)-Command模式 设计模式学习笔记(十

设计模式学习笔记(十)—Factory Method模式

<设计模式>一书对Factory Method模式是这样描述的: 定义一个用于创建对象的接口,让子类决定实例化哪一个类.FactoryMethod使一个类的实例化延迟到其子类. 我的理解:FatoryMethod模式是一种创建型模式,定义一个用于创建对象的接口的意思是说,我们要定义一个用于创建对象的接口(或者说抽象类,实际上就是个抽象工厂abstractFactory),它的内部有一个创建对象的方法,这个方法的返回值是一个接口(或者抽象类)的类型,这个方法就是FactoryMethod:让子类

JavaScript设计模式学习之“类式继承”

 这篇文章主要介绍了JavaScript设计模式学习之"类式继承",本文直接用代码实例讲解类式继承的实现方法,需要的朋友可以参考下     在做一件事情之前,首先要清楚做这件事情的好处有什么,相信不会有哪个人愿意无缘无故的去做事情.一般说来,我们在设计类的时候,实际上就是希望能减少重复性的代码,使用继承可以完美的做到这一点,借助继承机制,你可以在现有类的基础上再次进行设计并且充分利用它们已经具备的各种方法,而对设计的修改也更为轻松.废话不多说了,举例说明: 代码如下: function

请推荐哪些开源代码可以作为设计模式学习的素材

问题描述 请推荐哪些开源代码可以作为设计模式学习的素材,谢谢! 解决方案 struts: Chain of Responsibility(struts1.0), MVC, Spring: Factory, Singleton(配置), ProxyHibernate: Composite(Criteria), DAO(Database层)Swing: Adapter(Event 模式),Command(Menu),Decorator(JScrollPane)J2SE: Facade(InputSt

优化-java设计模式学习问题?

问题描述 java设计模式学习问题? 我网站的基本功能都已实现,现在要对网站版本升级优化,想快速了解设计模式相关内容,求各位好人推荐视频教程,各种培训机构的都行~ 解决方案 java设计模式学习java-单例设计模式学习7.18_java学习_单例设计模式 解决方案二: 爱酷学习网去看看.里面是软件编程教训视频 解决方案三: 有一个故事版本的java设计模式的,百度一下就出来了 解决方案四: 百度一下,设计模式,会有很多视频和介绍的

设计模式学习:组合复用原则

组合复用原则定义: 在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新的对象通过向这些对象的委派达到复用已有功能的目的 另外一种说法是:尽量使用(对象)组合,而非继承 那么组合和继承各自有什么特点,优缺点,为什么要有这样的优先呢!先来比较一下组合和继承. 组合 VS. 继承 组合复用的优点和缺点 组合 优点: 1容器类仅能通过被包含对象的接口来对其进行访问. 2"黑盒"复用,因为被包含对象的内部细节对外是不可见. 3  封装性好. 4  通过获取指向其它的具有相同类型的对

设计模式学习:开篇

写这个系列笔记,顺便回忆一下,也可以和大家一起分享一下. 在学习设计模式之前,心里可能有一个疑问,就是什么是设计模式.在这里我先废话一下,我说明一下我对设计原则和设计模式的理解,因为个人觉得设计模式,是建立在设计原则的基础之上来的. 图1 结合图1,这是我个人觉得而已,原则就好像是基础,而模式是针对一些具体环境而生的应对的设计方式. URL地址:http://www.bianceng.cn/Programming/project/201602/49624.htm 其实上面的你可以忘了,我只是在瞎

设计模式学习笔记(二十一)—Composite模式

今天开始学习Composite模式,首先让我们看一下它的定义: 将对象组合成树形结构以表示"整体-部分"的层次结构.Composite模式使单个对象和组合对象的使用具有一致性. 下面给出这个模式的结构图: 如果把Composite模式看成是树形结构的话,那么它主要角色有: 1)树干角色(Component):该角色是一个抽象类,它定义了一些操作增删树叶(Leaf)的操作. 2)树枝角色(Composite):树枝上有很多树干,树枝也是树干的一种. 3)树叶角色(Leaf):树干上的树叶

我的设计模式学习笔记------&amp;gt;Java设计模式总概况

设计模式(Design Pattern)的概念最早起源于建筑设计大师Alexander的<建筑的永恒方法>一书,尽管Alexander的著作是针对建筑领域的,但是他的观点实际上用用于所有的工程设计领域,其中也包括软件设计领域.在<建筑的永恒方法>一书中是这样描述模式的: 模式是一条由三个部分组成的通用规则:他表示一个特定环境.一类问题和一个解决方案之间的关系.每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心设计. 软件领域的设计模式也有类似的定义:设计模式是对处于特

我的设计模式学习笔记------&amp;gt;单例模式(Singleton)

一.前言 有些时候,允许自由创建某个类的实例是没有意义,还可能造成系统性能下降(因为创建对象所带来的系统开销问题).例如整个Windows系统只有一个窗口管理器,只有一个回收站等.在Java EE应用中可能只需要一个数据库引擎访问点,Hibernate访问时只需要一个SessionFactory实例,如果在系统中为它们创建多个实例就没有太大的意义. 如果一个类始终只能创建一个实例,则这个类被称为单例类,这种模式就被称为单例模式. 对Spring框架而言,可以在配置Bean实例时指定scope="