设计模式之反思(一)

这几天,师哥给我们讲了一下设计模式。让我们从学习方法及对各个模式的理解重新洗礼了一遍。在此,我整理了一下自己的笔记及自己的一些感受。

一、结构型

结构型模式处理的是类与类或者说对象与对象的关系。

1、外观模式—Facade

(1) 此模式定义了一个高层接口,从而使子类更容易使用,并提供了一个统一的界面。

(2)优点:

将用户和子系统分开,减少其耦合度,有利于系统维护,同时扩展性也比较好

(3)原则:

符合迪米特法则,违背了开闭原则

2、桥接模式—Bridge

如图,我们可以看出桥接模式的主体架构。它从两个维度来进行抽象,然后将两个抽象用关联(聚合)关系连接起来,从而形成我们所谓的桥。

(1)桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。

毛笔的例子,

(2)优点:

桥接模式将两个独立维度的变化分开,从而实现减少耦合。

避免多层继承,简少子类个数。

易于扩展。

(3)原则:

符合开闭原则,依赖倒转原则,合成/聚合复用原则。

3、代理模式—Proxy

(1)当对某对象访问比较困难时,代理模式就可以通过一个对象代理访问另一个对象,从而代替其完成某些功能。

(2)优点:

降低系统耦合性,增强可扩展性,提高系统性能,提高运行效率

(3)原理

符合开闭原则,迪米特法则

设计模式之反思(一),布布扣,bubuko.com

时间: 2024-08-08 01:09:28

设计模式之反思(一)的相关文章

重构中对设计模式的反思

什么是设计模式? 每一类编程语言都具有其自身的特性,就像是面向对象的语言,其特性就是封装,继承,多态,抽象. 同一时候,使用每一类编程语言开发软件时也都有一些设计准则,这些准则保证了软件的质量,即具有良好的设计. 而设计模式则是广大软件开发者总结出的开发经验技巧,它们利用编程语言的特点,实现这些准则.因此,能够想象,当我们对设计模式熟悉到一定程度后,在设计系统时.我们眼里就会变得没有设计模式,仅仅有设计准则,真正达到手中无剑.心中有剑的境地. 在学习设计模式时.到底要学什么?      曾经.在

C/S总结

学习完了C/S这个大阶段,都不知道自己是怎么走过来,现在,回头看一下,感觉自己也挺有收获的,下面我主要是把我所写的博客总结了一下. 软件工程主要的内容集中在软件设计的步骤上: 计划(项目开发计划) 需求分析(软件需求) 设计(概要.详细.数据库) 编码 测试(测试计划.测试分析) 运行和维护 文档:开发前需准备好:项目可行性项目.项目开发计划.软件需求分析说明书.概要设计.详细设计.数据要求说明.数据库设计: 开发中:项目开发进度月报.项目开发总结报告: 开发后:测试计划说明书.测试分析分析说明

设计模式的一些杂谈与反思---functionn和signals

以下关于GOF的一些例子命名不是很准确,但是大概意思差不多,懒得再去翻书了 模拟观察者模式 模拟中介者模式 模拟command模式 模拟memento和command 模拟观察者模式 观察者与职责链模式应该是我们项目中用的最多的了   我在之前也写过一篇利用观察者模式对模块进行解耦,当时还是用纯虚函数 http://www.cnblogs.com/linyilong3/p/4232529.html 用纯虚函数来模拟接口是我们之前比较经常使用的方法 这样的缺点是  需要自己去编写接口的纯虚函数,接

软件设计模式与设计风格的反思

以前编码只是关注能写出来,并让程序运行就完事,这是非常错误的想法. 重新理解软件设计,要考虑如何设计函数接口更加容易理解,而不是写成什么样的函数能表达现在的业务理解. 函数或者类的设计除了要考虑业务,还需要从品味上入手,这个品味就是易读,美观,想想python之禅.

2015.7个人反思小结以及后续规划

2015.7个人反思小结以及后续规划 标签(空格分隔): 反思小结 缘由: 总觉得有必要为自己写一篇小结,有些东西会跟随着时光慢慢被淡忘,写小结感觉和拍照一样,都是用来 记录自己曾经的点点滴滴,以后某一天回头看到这篇小结,可能会会心一笑,哈哈,曾经自己也这样傻逼过: 反思下自己的过去,看下自己的现在,规划以后的方向~,给自己一点鸡汤,打打鸡血,一点点让自己成为一个 优秀的人~ 过去: 在今年的7月4号,小猪的大学生涯终于到了尽头,可惜并没有拿到正常毕业拿到的两个证:学位证跟毕业证:只拿到一个象征

设计模式(创建型)之原型模式(Prototype Pattern)

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! 概述 原型模式是一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例.被复制的实例就是我们所称的原型,这个原型是可定制的.原型模式多用于创建复杂的或者耗时的实例, 因为这种情况下,复制一个已经存在的实例可以使程序运行更高效,或者创建值相等,只是命名不一样的同类数据. 原型模式要求对象实现一个可以"克隆"自身的接口,这样就可以通过

饕餮盛宴之设计模式

老师集合八期.九期的师哥师姐,倾心准备了一场饕餮盛宴.为之三天的设计模式的讲解,不仅仅让我们巩固了知识,开拓了眼界,还让我们对好的学习方法有了更清晰真切的了解.这次模式的讲解,感觉收获颇丰. 一.总体思想 1.看待问题要简单.抽象 学习一个东西,要学会极端化的来对待它,先从简单的开始.我们往往会选取一个中间值来讲解,结果把别人搞晕了,自己也晕了. 2.学习要脚踏实地,搞懂的越晚,付出的代价越大 学习的初期,尽可能要还原学习的原貌,搞懂它,这样在学习的后期才能走的更轻松.如果现在能搞懂却不愿意弄懂

转载--C++的反思

转载自http://blog.csdn.net/yapian8/article/details/46983319 最近两年 C++又有很多人出来追捧,并且追捧者充满了各种优越感,似乎不写 C++你就一辈子是低端程序员了,面对这种现象,要不要出来适时的黑一下 C++呢?呵呵呵. 咱们要有点娱乐精神,关于 C++的笑话数都数不清: 笑话:C++是一门不吉祥的语言,据说波音公司之前用ADA为飞机硬件编程,一直用的好好的,后来招聘了一伙大学生,学生们说我靠还在用这么落后的语言,然后换成C++重构后飞机就

4年前阅读《大话设计模式》摘抄的经典语句

前言 在自己的网盘中查找Memcached相关资料时,偶然看到自己很早之前阅读<大话设计模式>时所摘抄的经典语句.阅读完此书之后,对设计模式有了粗浅的认识,跟别人交流也能说道一二.感谢作者无私的分享! 经典语句 1 通过封装.继承.多态把程序的耦合度降低2 用设计模式使得程序更加的灵活,容易修改,并且易于复用3 聚合表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分[DPE]4 合成(Composition,也有翻译成‘组合’的)是一种强的‘拥有’关系,体现了严