
设计模式
法迪
Android系统与续航工程师、应用开发工程师
https://github.com/sufadi
332157261@qq.com
展开
-
类简单工厂模式-笔记
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录现象需求package com.su.factorymode.none;public class PizzaUtil { // 奶酪 public static final String Type_Cheese = "Type_Cheese"; // 花蛤 public static final原创 2017-11-13 20:09:50 · 604 阅读 · 0 评论 -
【学习笔记】设计模式-复合模式(Compound_pattern)
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录复合模式各种设计模式混合使用1. 面向接口编程接口嘛,定义的目的就是用来使用1.1 定义一个叫声接口/** * 叫声接口 */public interface Quckable { // 呱呱叫 public void quack();}1.2 不同鸭子实现不叫叫声,实现接口/** * 绿头鸭实现接口原创 2017-12-05 10:43:04 · 701 阅读 · 0 评论 -
【学习笔记】设计模式-迭代器模式
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部表示需求请将数组和List的打印方法改用使用迭代器遍历的方法实现需求分析数组打印方法 public void printDatas() { for (int i = 0; i < datas.length; i++) {原创 2017-11-27 19:35:43 · 501 阅读 · 0 评论 -
【学习笔记】设计模式-观察者模式
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录观察者模式定义定义了对象之间的一对多依赖,这样一来,当一个对象改变状态的时候,她的所有依赖着都会收到通知并自动更新。需求气象站需要想订阅温度数据的客户推送温度数据,请用观察者模式实现需求分析这里是一个一对多的关系,且必须是订阅的客户才可以收到这个数据。 即气象站:需要提供注册接口,和消息通知接口 客户即观察者:需要有接原创 2017-11-26 22:37:00 · 591 阅读 · 0 评论 -
【学习笔记】设计模式-策略模式
前言 本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录策略模式的定义定义了算法族,分别封装起来,让他们之间可以相互转换,此模式让算法的变化独立于使用算法的客户Demo 需求鸭子游戏文化公司旗下有3款鸭子 绿鸭子:会游泳,会飞,会叫 哑巴鸭子:会游泳,会飞,不会叫 塑料鸭子:会游泳,不会飞,不会叫 其中后期塑料鸭子会加入声音功能,需要预留接口后续拓展需求分析3款鸭子原创 2017-11-26 17:25:28 · 486 阅读 · 0 评论 -
设计模式-模块方法模式
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录简介模块方法模式,个人理解,首先模块方法需要有final,即该方法里面执行顺序不可改变,但是模块方法里面的字方法允许执行abstract方法。即abstact方法可以根据不同情况改变。需求用模块方法模式写一个泡茶和泡咖啡的例子开发需求分析 /** * 制作一份饮料的流程顺序是 * 1.boilWa原创 2017-11-25 10:16:24 · 1256 阅读 · 0 评论 -
《学习笔记》设计模式-代理模式
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录代理模式特征为另一个对象提供一个替身或者占位符以访问这个对象远程代理远程代理可以作为另一个JVM上对象的本地代理,调用代理的方法,会被代理利用网络转发到远程执行,并且结果会通过网络返回给代理,再由代理将结果转发给客户我认为以前的网络编程就是远程代理,还有例如地图轨迹查询 客户端发送requst()-服务器代理这个请求-控原创 2017-12-04 19:22:02 · 465 阅读 · 0 评论 -
设计模式-外观模式
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录简介外观模式就是封装一下,让接口变得更加简单。我看了这个模式,都感觉自己无时无刻都在使用外观模式。叫外观的原因,他封装了一组相关的功能,简化接口,让它变得更好漂亮一些。需求用外观模式简化看电视的环节没有外观模式的WatchTV()功能好多事情都有自己亲力亲为,比如插电线,按电源键,调音量,调亮度,拿遥控器,看着一点都不智能原创 2017-11-24 19:48:56 · 521 阅读 · 0 评论 -
【学习笔记】设计模式-适配器模式
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录需求现实生活中有不少是和适配器模式相关哦,适配器的作用就是把2个不兼容的东西兼容起来。 例如:去香港的时候,需要买转换插头,因为香港法律规定室内电器插坐插头必须英式的方脚三柱插头,这个插头比我们大陆的大,不能直接互用。所以需要使用转换插头。这个我认为是形状上的兼容。不然道理类似哦。代码需求: 将Enumeration原创 2017-11-23 19:46:49 · 493 阅读 · 0 评论 -
【学习笔记】设计模式-状态模式
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录定义允许对象在内部状态改变是改变它的行为,对象看起来好像修改了他的类需求投币出糖果 1.初识状态-待投币 2.持币状态-待转动曲柄 请用状态模式完成非状态模式Demo// 使用state状态进行判断处理public void action_Give_RMB() { switch (state) {原创 2017-12-02 15:01:49 · 562 阅读 · 0 评论 -
【学习笔记】设计模式-命令模式
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录 需求使用一个遥控器控制各种家电哦框架图运行日志顺序// 关灯01-02 01:30:04.429 21160-21160/? D/suhuazhi: setLight01-02 01:30:04.431 21160-21160/? D/suhuazhi: setCommand01-02 01:30:04.431 2原创 2017-11-22 12:48:07 · 539 阅读 · 0 评论 -
【学习笔记】设计模式-组合模式
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录组合模式组合模式让我们能用树形方式创建对象的结构,其中树里面包含了组合以及个别的对象。故公共基类的方法是一致,区分在于要不要实现树类型基类包含所有的方法package composite_pattern;public abstract class Tree { public abstract String getN原创 2017-11-30 20:09:35 · 493 阅读 · 0 评论 -
【学习笔记】装饰者模式
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录 需求我需要一杯咖啡,但是需要加牛奶和白糖,请算出价格 我们可以拆解为咖啡,装饰着牛奶和白糖,例如像下面这样套着 /** * 咖啡+牛奶+白糖 * * 所谓装饰描述: 即原味咖啡的基础上,装饰: 牛奶 MilkCondiment,再装饰:白糖 SugarCondiment原创 2017-11-20 20:09:41 · 547 阅读 · 0 评论 -
【学习笔记】单例模式
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录 Demo1记得我第一次自己写的情况是直接下面的写法,但是多线程下就不经用了 /** * 缺点多线程下,会出现无法维持单例的情况 */ public class SingletonDemo_1 { private static SingletonDemo_1 mInst原创 2017-11-19 23:10:39 · 476 阅读 · 0 评论 -
【学习笔记】工厂模式学习2
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录 上一篇笔记 http://blog.youkuaiyun.com/su749520/article/details/78524122Pizza加盟店上文对单个Pizza店进行良好编程习惯的开发,接下来需要继续复用和拓展,即新增基于总店Pizza店的加盟店模式开发。注意加盟店的特点是: 1.制作流程必须依赖总店;原创 2017-11-14 19:50:41 · 623 阅读 · 0 评论 -
【学习笔记】抽象工厂模式
前言本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录 上一篇笔记 http://blog.youkuaiyun.com/su749520/article/details/78534261Pizza的原料工厂上一篇的Pizza加盟店主要是根据工厂模式建立起来 工厂模式主要是通过在基类定义一个抽象接口 public abstract Pizza createPizzaStore()原创 2017-11-18 16:34:03 · 535 阅读 · 0 评论 -
【学习笔记】设计模式-MVC模式
MVC 模式理论MVC是复合模式,结合了观察者模式、策略模式和组合模式模式Model-观察者:更新状态和解耦控制器Control:是视图View的策略,视图可以使用不同的控制器实现,得到不同的行为视图View:使用了组合模式实现UI界面MVC模型三层解耦,代码设计干净且弹性原创 2017-12-07 19:17:59 · 561 阅读 · 0 评论