设计模式

记录《Head First 设计模式》
参考 Graphic Design Patterns网站深入设计模式
目的是检查学习情况,同时方便以后复习。



一、 设计模式概念

1-1 简述

软件设计模式 Disign Pattern又称设计模式,是一套被反复使用、多数人知晓的、经过分类目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易使人理解、保证代码可靠性、程序的重用性。

设计模式与方法或库不同

  • 方法或库:具有特定的代码。
  • 设计模式:不是一段特定的代码,而是解决问题的一般性概念,可以根据模式来实现符合自己程序所需要的解决方案。

人们常常混淆模式与算法,因为两者的概念都是已知特定问题的典型解决方案

  • 算法:提供达成目标所需要的一系列步骤。
  • 模式:可以预测最终结果与功能,但需要自己确认实现的步骤。同一模式下的不同程序实现的代码不一致。

1-2 模式包含内容

  • 意图:简单描述问题和解决方案
  • 动机:将进一步解释问题并说明模式会如何提供解决方案。
  • 结构:展示模式的每个部分和它们之间的关系。

二、学习设计模式

1-1 学习设计模式的好处

  • 设计模式是针对软件设计中常见问题的工具箱,其中工具时经过 实践验证的解决方案 。 即使你从未遇到过问题,但了解设计模式很有用,因为它能指导你如何解决对象的设计原则来解决各种问题。

  • 设计模式定义了一种让你与团队成员能够 更高效沟通 的通用语言。

    • 当使用模式和其他开发人员或者开发团队沟通时,你们之间的交流不只是模式名称,而是一整套模式背后所象征的质量、特性、约束。
    • 当使用设计模式沟通时,其他开发人员更能容易理解你对设计的想法。。
    • 使用模式谈论系统,可以让你保持在设计层次,不容易压低到对象与类的琐碎的事情上。
    • 对于设计模式有深入了解的团队,彼此之间对于设计的看法不容易产生误解。
    • 初级开发人员会向有经验的开发人员看齐。当高级开发人员使用设计模式,初级开发人员也会跟着学。把你的组织建立一个模式使用者的社区。

1-2 学习设计模式达到层次

  • 了解并熟悉模式的结构图与时序图。
  • 可以实现模式的代码,若实现不了代码,就不知如何使用模式。
  • 在程序中灵活的使用模式。并不是简单的程序就使用模式,举例:输出 “HelloWorld” 都要运用模式,则是中了模式的毒。

三、设计模式分类

根据其 意图或目的 分类,可分为三种模式类型:

  • 创建型模式:负责对象的创建。提供创建对象的机制,增加已有代码的灵活性和可复用性。
  • 结构型模式:处理类与对象间的结合。介绍如何将对象和类组装成较大的结构,并同时保持结构的灵活和高效。
  • 行为模式:类与对象交互中的职责分离。负责对象间的高效沟通和职责委派。

四、 UML

UML图关系:
UML图

五、设计模式要点

  • 知道OO基础,并不足让你设计良好的OO系统(OO系统:Object Oriented 面向对象系统)
  • 良好的OO系统,具有三个特性:可复用、可扩充、可维护
  • 模式被认为是历经验证的OO设计经验。
  • 模式不是代码,而是针对设计问题通用解决方案。你可把它们应用到特定的应用中。
  • 模式不是被发明的,是被发现的。
  • 大多数的模式都允许系统局部改变独立于其他部分。
  • 我们常把系统会改变的部分抽出来封装。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值