MyException - 我的异常网
当前位置:我的异常网» 设计模式 » 【设计模式】——小结

【设计模式】——小结

www.MyException.Cn  网友分享于:2015-02-11  浏览:0次
【设计模式】——总结

    设计模式是面向对象技术的最新进展之一。设计模式是可以复用的设计方案,我们可以站在巨人肩膀上,无需为重复出现的问题再次设计解决方案。 设计模式有利于提高我们的思考层次,需要我们不断的认真学习。

    每个设计模式的特点是他们分类的依据。如下图是我个人的理解,若有不同,望指出!

创建型
    抽象工厂:一系列 接口 具体类 创建一系列接口;多个类型产品、
                      臃肿
    建造者: 构建 表示 构建过程和表示过程分离,使得相同的构建可以创建不同表示的实例。
    工厂:接口 创建接口
    原型:copy 通过复制创建一个新的实例
    单例:只创建一个实例
    共同特点:接口 创建什么、怎么创建
结构型
    适配器:转换接口
                 开封 协同
    桥接:抽象 实现 变化
               聚合代替继承
               解耦不同变化 找出变化并封装
    组合:部分-整体
    装饰:为一个对象动态添加职责
               动态、透明的方式给单个对象添加职责
    外观:一组接口——高层接口
             信息的隐藏
    享元:共享
    代理:代理 对这个对象的访问


行为型
    观察者:1:n
        定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,是他们能够自动更新自己。
        特点:1:n=1个通知者:n个观察者;通知者状态发生变化,观察者的行为更新。
    模板:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
        特点:抽象 继承
    命令:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
        特点:多建立类
    状态:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
        特点:状态改变,行为改变。
    职责链:使多个对象都有机会处理请求,从而避免请求的发送者和接收者的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
        特点:1:n=1个请求:n个处理者

    解释器:给定一种语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
        特点:解释
    中介者:用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
        特点:中介 不之间发生关系
    访问者:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
        特点:新操作
    策略:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。
        特点:封装算法。
    备忘录:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后,就可将该对象恢复到原先保存的状态。
        特点: 保存状态
    迭代器:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
        特点:遍历

六大原则:

    设计程序坚持这六大原则,有利于程序的维护、复用、扩展,增强其灵活性。


    感受:读着第29章对设计模式的总结,知道什么叫做皮毛!虽然,已经学习设计模式一个月了,但是,也仅仅是理解了一个皮毛,仅仅是理解了一些代码,机械的懂得了设计模式的优缺点,什么时候使用!对其真正的思想精华,吸收的不是很多,还有待进一步大空间的进步。
    设计模式的特点可能就是这样,当初看培养计划时,上面也是说,设计模式需要反复学习,一次学透是不可能的。这次,我对设计模式的学习也还算认真,设计模式有23个,学习过程中,难免有情绪起伏,故有些设计模式学习的不错,有些就真的是皮毛,模模糊糊了,甚至连他们的故事都想不起来。若猛地问我一个设计模式的话,我需要认真想才可以想起来,有时,还可能混。
    我计划,这次先简单总结一下,主要目的是了解自己情况。设计模式我还需要对其进行长久学习。

文章评论

要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
 程序员的样子
程序员的样子
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
10个调试和排错的小建议
10个调试和排错的小建议
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员必看的十大电影
程序员必看的十大电影
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
程序员的鄙视链
程序员的鄙视链
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
一个程序员的时间管理
一个程序员的时间管理
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
程序员和编码员之间的区别
程序员和编码员之间的区别
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
编程语言是女人
编程语言是女人
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
我是如何打败拖延症的
我是如何打败拖延症的
程序员都该阅读的书
程序员都该阅读的书
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
中美印日四国程序员比较
中美印日四国程序员比较
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
鲜为人知的编程真相
鲜为人知的编程真相
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
漫画:程序员的工作
漫画:程序员的工作
旅行,写作,编程
旅行,写作,编程
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
为什么程序员都是夜猫子
为什么程序员都是夜猫子
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
老程序员的下场
老程序员的下场
我的丈夫是个程序员
我的丈夫是个程序员
那些争议最大的编程观点
那些争议最大的编程观点
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
总结2014中国互联网十大段子
总结2014中国互联网十大段子
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有