装饰者模式:动态地将责任附件到对象上.若要扩展功能,装饰者提东了比继承更有弹性的替代方案. 装饰者和被装饰对象有相同的超类型 你可以用一个或者多个装饰者包装一个对象. 既然装饰者和被装饰对象有相同的超类型,所以在任何需要原始对象(被包装的)的场合,可以用装饰过的对象代替它. 装饰者可以在所委托被装饰者的行为前与/或之后,加上自己的行为,已达到特定的目的. 对象可以在任何时候被装饰,所以可以在运行时动态地.不限量地用你喜欢的装饰者来装饰对象 设计原则:类应该对扩展开放,对修改关闭(开放-关闭原则)…
HeadFirst设计模式读书笔记(1)-策略模式(Strategy Pattern) HeadFirst设计模式读书笔记(2)-观察者模式(Observer Pattern) HeadFirst设计模式读书笔记(3)-装饰者模式(Decorator Pattern)…
一.策略模式的定义 策略模式定义了算法族,分别封装起来,让它们之间可以互换替换,此模式让算法的变化独立使用算法的客户. 二.使用策略模式的一个例子 2.1引出问题 某公司做了一套模拟鸭子的游戏:该游戏会出现各种鸭子,他们具有相似点(都会叫,会游泳,会表达自己的特征)和异同点(每种展示自己的特征是不同的方法),很容易想到使用OO技术,定义个鸭子超类,让其他的鸭子类来继承鸭子超类. 由于异同点都会展示自己的特征,只是展示特征方式不同,所以在超类中特征的方法是抽象或者使用一个接口(在此就使用接口,因为…
该篇随我读书的进度持续更新阅读书目:<JavaScript设计模式> 2016/3/30 2016/3/31 2016/4/8 2016/3/30: 模式是一种可复用的解决方案,可用于解决软件设计中遇到的常见问题./将解决问题的方法制作成模板,并且这些模板可应用于多种不同的情况.有效模式的附加要求:适合性,实用性,适用性. 模式的优点: 防止局部问题引起大问题,模式让我们的代码更有组织性 模式通常是通用的解决方式,不管我们开发哪种应用程序,都可以用模式优化我们代码的结构 模式确实可以让我们避免…
前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找设计模式学习笔记汇总地址 1. 简介 上一篇博客介绍了简单工厂模式,简单工厂模式存在一个很严重的问题: 就是当系统需要引入新产品时,由于静态工厂方法通过所传入参数的不同来创建不同的产品,这必定要修改工厂类的源代码,这将违背"开闭原则". 本篇将要介绍的工厂方法模式可以规避这个缺点. 2. 工厂方法模式 工厂方法模式又简称为工厂模式,又可称作虚拟构造器模式或多态工厂模式.工厂方法模式是一种创建型模式. 2.1…
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7614630.html,记录一下学习过程以备后续查用. 一.引言 在现实生活中,我们经常会遇到一些构成比较复杂的物品.比如电脑,是由CPU.主板.内存条.硬盘.显卡.机箱等组装而成的.手机也是复杂物品, 由主板.各种芯片.RAM.ROM.摄像头等部件组成.但是无论是电脑还是手机,它们的组装过程是固定的.拿手机来说,组装流水线是固定的.不变的, 但是把不同的主板和其它组件组装在一起就会生产出不同型号的手机.那…
以前对HTTP协议一知半解,一直不清楚前端需要对于HTTP了解到什么程度,知道接触的东西多了,对于性能优化.服务端的配合和学习中也渐渐了解到了HTTP基础的重要性,看了一些大神对HTTP书籍的推荐,也就找了这本<图解HTTP>来学习一些基础,对于这本书来说,每页都有一些很生动的配图,阅读起来不会像理论书籍那么的枯燥,配图都画的很有意思,值得一看,下面是我的一些读书笔记,也不算是笔记吧,只是摘出了我觉得的重点. 第一章 了解web及网络基础     HTTP的基础知识 超文本传输协议     h…
前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找设计模式学习笔记汇总地址 正文开始... 1. 简介 简单工厂模式不属于GoF23中设计模式之一,但在软件开发中应用也较为频繁,通常做为学习其他工厂模式的入门. 接下来我们从一个虚构的业务场景遇到的问题开始,到如何使用简单工厂模式去解决这个业务场景的问题的角度,来介绍这个模式. 2. 具体业务 有一个图表类,可以在实例化的时候根据传入的参数创建不同的图表类型,比如柱状图.饼状图.折线图等等. 2.1 业务代码 /**…
前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找设计模式学习笔记汇总地址 1. 抽象工厂模式概述 工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题, 但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销. 此时,我们可以考虑将一些相关的产品组成一个"产品族",由同一个工厂来统一生产.这就是抽象工厂模式的基本思想. 2. 模拟业务 开发一套界面皮肤库,用户在使用时可以通过菜单来选择皮肤…
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/8242238.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲行为型设计模式的第十一个模式--解释器模式,也是面向对象设计模式的最后一个模式.先要说明一下,其实这个模式不是最后一个模 式(按Gof的排序来讲),为什么把它放在最后呢?因为我们在业务系统中写一个解释器的机会并不是很多,实践比较少,理解和应用该模式就有些困 难,所以就放在最后来说,先从名称上来看这个模式.“解释器”和Google的…