【HeadFirst设计模式】13.与设计模式相处
模式:
是在某情境下,针对某问题的某种解决方案。
要点:
让设计模式自然而然地出现在你的设计中,而不是为了使用而使用。
设计模式并非僵化的教条,你可以依据自己的需要采用或者进行调整。
总是使用最简单的解决方案,不管它用不用设计模式。 学习设计模式的类目,可以帮你自己熟悉这些模式以及它们之间的关系。
模式的分类(或类目)是将模式分成不同的族群,如果这么做对你有帮助,就采用吧。
你必须相当专注才能成为一个模式的作家:这需要时间也需要耐心,同时还必须乐意做大量的精化工作。
请牢记:你所遇到的大多数的模式都是现有模式的变体,而非新的模式。
模式能够为你带来的最大好处之一是:让你的团队拥有共享词汇。
任何社群都有自己的行话,模式社群也是如此。
别让这些行话绊着,在读完本书之后,你已经能够应用大部分的行话了。(哈哈,听了好开心啊有木有!)
重温OO原则:
封装变化。
多用组合,少用继承。
针对接口编程,不针对实现编程。
为交互对象之间的松耦合设计而努力。
类应该对扩展开放,对修改关闭。
依赖抽象,不要依赖具体类。
只和朋友交谈。
别找我,我会找你。
类应该只有一个改变的理由。
重温设计模式:
装饰者:包装一个对象,以提供新的行为。
状态:封装了基于状态的行为,并使用委托在行为之间切换。
迭代器:在对象的集合之中游走,而不暴露集合的实现。
外观:简化一群类的接口。
策略:封装可以互换的行为,并全用委托来决定使用哪一个。
代理:包装对象,以控制对此对象的访问。
工厂方法:允许客户创建对象的家庭,而无需指定他们的具体类。
适配器:封装对象,并提供不同的接口。
观察者:让对象能够在状态发生改变时被通知。
模板方法:由子类决定如何实现一个算法中的步骤。
组合:客户用一致的方式处理对象集合和单个对象。
单件:确保有且只有一个对象被创建。
抽象工厂:由子类决定要创建的具体类是哪一个。
命令:封装请求成为对象。
【HeadFirst设计模式】13.与设计模式相处的更多相关文章
- 猿取向的规划设计模式 ——GoF《设计模式》阅读摘要(零)
这个话题是很奇怪,设计模式是引导程序的设计不是模仿什么软件?呃.我的意思是,这是 面"对象"相对的设计模式. 我曾见过有人写<给妻子解释设计模式>,这样的把计算机中的思 ...
- C#设计模式(0)-认识设计模式
简介 世界上本没有路,走的人多了也就成了路:世界上本来没有设计模式.用的人多了,也就成了设计模式.所以,我们不是严格按照它的定义去执行,可以根据自己的实际场景.需求去变通.领悟了其中的思想,实现属于自 ...
- GOF提出的23种设计模式是哪些 设计模式有创建形、行为形、结构形三种类别 常用的Javascript中常用设计模式的其中17种 详解设计模式六大原则
20151218mark 延伸扩展: -设计模式在很多语言PHP.JAVA.C#.C++.JS等都有各自的使用,但原理是相同的,比如JS常用的Javascript设计模式 -详解设计模式六大原则 设计 ...
- C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi
C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...
- [Head First设计模式]生活中学设计模式——迭代器模式
系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...
- [Head First设计模式]生活中学设计模式——组合模式
系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...
- [Head First设计模式]生活中学设计模式——外观模式
系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...
- [Head First设计模式]生活中学设计模式——状态模式
系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...
- Java设计模式1:设计模式概论
设计模式是什么 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易地被他人理解.保证代码可靠性.毫无 ...
随机推荐
- c/c++中使用指针需要注意的问题
一.使用指针的时候需要注意几点: 分配空间 初始化 释放 二.常见的错误有几种: 1)内存分配未成功,却使用了它 编程新手常犯这种错误,因为他们没有意识到内存分配会不成功.常用解决办法是,使 ...
- MongoDB命令学习
mongodb不像关系型数据库有很强大的GUI客户端,虽然mongodb也有,但功能和稳定性实在不敢恭维,所以操作mongodb我们大部分 都是用类似cmd命令的方式(mongodb称为shell操作 ...
- 【剑指Offer学习】【全部面试题汇总】
剑指Offer学习 剑指Offer这本书已经学习完了.从中也学习到了不少的东西,如今做一个总的文件夹.供自已和大家一起參考.学如逆水行舟.不进则退.仅仅有不断地学习才干跟上时候.跟得上技术的潮流! 全 ...
- label WordWrap
procedure TForm1.FormCreate(Sender: TObject);begin Label1.AutoSize := False; Label1.WordWrap : ...
- STL——迭代器的概念
迭代器是一种抽象的设计概念,现实程序语言中并没有直接对应于这个概念的实物. 1 迭代器设计思维——STL关键所在 不论是泛型思维或STL的实际运用,迭代器都扮演这重要的角色.STL的中心思想在于:将数 ...
- QSqlQueryModel的实例操作
QSqlQueryModel类为SQL的结果集提供了一个只读的数据模型,下面我们先利用这个类进行一个最简单的操作. 我们新建Qt4 Gui Application工程,我这里工程名为queryMode ...
- Dubbo架构设计详解--转载
原文地址:http://shiyanjun.cn/archives/325.html Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解 ...
- Android 快速开发框架网络篇-Android-Async-Http
一.基本用法 AsyncHttpClient client = new AsyncHttpClient(); client.get("http://www.google.com", ...
- python中HTMLParser简单理解
找一个网页,例如https://www.python.org/events/python-events/,用浏览器查看源码并复制,然后尝试解析一下HTML,输出Python官网发布的会议时间.名称和地 ...
- ambassador docker container linking
http://docs.docker.com/articles/ambassador_pattern_linking/