模式:

  是在某情境下,针对某问题的某种解决方案。

要点:

  让设计模式自然而然地出现在你的设计中,而不是为了使用而使用。

  设计模式并非僵化的教条,你可以依据自己的需要采用或者进行调整。

  总是使用最简单的解决方案,不管它用不用设计模式。 学习设计模式的类目,可以帮你自己熟悉这些模式以及它们之间的关系。

  模式的分类(或类目)是将模式分成不同的族群,如果这么做对你有帮助,就采用吧。

  你必须相当专注才能成为一个模式的作家:这需要时间也需要耐心,同时还必须乐意做大量的精化工作。

  请牢记:你所遇到的大多数的模式都是现有模式的变体,而非新的模式。

  模式能够为你带来的最大好处之一是:让你的团队拥有共享词汇。

  任何社群都有自己的行话,模式社群也是如此。

  别让这些行话绊着,在读完本书之后,你已经能够应用大部分的行话了。(哈哈,听了好开心啊有木有!)

重温OO原则:

  封装变化。

  多用组合,少用继承。

   针对接口编程,不针对实现编程。

  为交互对象之间的松耦合设计而努力。

  类应该对扩展开放,对修改关闭。

  依赖抽象,不要依赖具体类。

  只和朋友交谈。

  别找我,我会找你。

  类应该只有一个改变的理由。

重温设计模式:

  装饰者:包装一个对象,以提供新的行为。

  状态:封装了基于状态的行为,并使用委托在行为之间切换。

  迭代器:在对象的集合之中游走,而不暴露集合的实现。

  外观:简化一群类的接口。

  策略:封装可以互换的行为,并全用委托来决定使用哪一个。

  代理:包装对象,以控制对此对象的访问。

  工厂方法:允许客户创建对象的家庭,而无需指定他们的具体类。

  适配器:封装对象,并提供不同的接口。

  观察者:让对象能够在状态发生改变时被通知。

  模板方法:由子类决定如何实现一个算法中的步骤。

  组合:客户用一致的方式处理对象集合和单个对象。

  单件:确保有且只有一个对象被创建。

  抽象工厂:由子类决定要创建的具体类是哪一个。

  命令:封装请求成为对象。

【HeadFirst设计模式】13.与设计模式相处的更多相关文章

  1. 猿取向的规划设计模式 ——GoF《设计模式》阅读摘要(零)

    这个话题是很奇怪,设计模式是引导程序的设计不是模仿什么软件?呃.我的意思是,这是 面"对象"相对的设计模式. 我曾见过有人写<给妻子解释设计模式>,这样的把计算机中的思 ...

  2. C#设计模式(0)-认识设计模式

    简介 世界上本没有路,走的人多了也就成了路:世界上本来没有设计模式.用的人多了,也就成了设计模式.所以,我们不是严格按照它的定义去执行,可以根据自己的实际场景.需求去变通.领悟了其中的思想,实现属于自 ...

  3. GOF提出的23种设计模式是哪些 设计模式有创建形、行为形、结构形三种类别 常用的Javascript中常用设计模式的其中17种 详解设计模式六大原则

    20151218mark 延伸扩展: -设计模式在很多语言PHP.JAVA.C#.C++.JS等都有各自的使用,但原理是相同的,比如JS常用的Javascript设计模式 -详解设计模式六大原则 设计 ...

  4. C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi

    C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...

  5. [Head First设计模式]生活中学设计模式——迭代器模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...

  6. [Head First设计模式]生活中学设计模式——组合模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...

  7. [Head First设计模式]生活中学设计模式——外观模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...

  8. [Head First设计模式]生活中学设计模式——状态模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...

  9. Java设计模式1:设计模式概论

    设计模式是什么 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易地被他人理解.保证代码可靠性.毫无 ...

随机推荐

  1. Cocos2d-x——CocosBuilder官方帮助文档翻译1 使用自定义类

    原创:请注明转载! 在Cocos2d-x中使用CocosBuilder 使用自定义类 CocosBuilder的使用方法是通过自定义类.在CocosBuilder中选中一个对象并在属性栏中输入自定义类 ...

  2. linux centos6 NAT 端口转发

    有很多时候我们为了安全,需要将例如数据库服务器放到内网中.但是有些时候又系统给外网开一个端口,这时就可以利用外网的服务器进行一个端口转发.今天我们以centos6 为例进行端口转发配置. 首先vi / ...

  3. Mac Pro更换SSD后,在Win7下启用ACHI的方法AHCI

    在Mac Pro下更换SSD后,如果安装Win7,要将SSD改为AHCI模式是非常麻烦的.本文介绍如何将Mac的Win7下的SSD改为AHCI方式驱动,及几种常见问题的处理. 一.当Lion与Win7 ...

  4. Android使用的开发MediaRecorder录制视频

    MediaRecorder除了使用录制音频.还可用于录制视频.关于MediaRecorder的具体解释大家能够參考<Android开发之MediaRecorder类具体解释>.使用Medi ...

  5. iOS开发——UI篇OC&transform详解

    transframe属性详解 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两大类 (1) 创建“基 ...

  6. Mysql字符集设置 2 图

    基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如'A'.'B'等: • 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encodin ...

  7. linux文件夹操作(及模糊搜索)

    mkdir   文件夹名称    :创建文件夹 touch  文件名称       : 创建文件 给文件夹或文件授权 chmod -R 777 文件夹名称   : 递归给文件夹授读写执行权限 chmo ...

  8. JFinal极速开发实战-业务功能开发-通用表单验证器

    提交表单数据时,需要经过前端的验证才能提交到后台,而后台的验证器再做一道数据的校验,成功之后才能进入action进行业务数据的处理. 在表单数据的验证中,数据类型的验证还是比较固定的.首先是对录入数据 ...

  9. Callable、Future和FutureTask使用说明

    普通的创建线程,一种是直接继承Thread,另外一种就是实现Runnable接口.但是这两种都无法在执行完任务之后获取执行结果,Callable.Future就提供了这样的便利.   Future的方 ...

  10. 关于Ajax的实现

    AJAX:Asynchronous Javascript And XML.异步的JavaScript和XML. 同步请求: 异步请求: 1.1.1    XMLHttpRequest对象的介绍: 方法 ...