设计模式系列3–中介者模式
image 我们使用的电脑,你完成的任何一个功能都需要cpu、内存、显卡、键盘、显示器等这些零件相互调用才能完成功能,如果让这些零件之间直接互相调用,那么他们之间的关系可能如下图所示,非常凌乱复杂: image 但是电脑开发商并没有让这些零件之间相互直接调用,而是通过主板来统一…
常用的 JavaScript 设计模式
设计模式太多了,貌似有 23 种,其实我们在平时的工作中没有必要特意去用什么样的设计模式,或者你在不经意间就已经用了设计模式当中的一种。本文旨在总结平时相对来说用的比较多的设计模式。
装饰器模式(从放弃到入门)
装饰器模式,详细解释。理论 + 例子 + 实践 + 总结,不信你不懂!
LOL设计模式之「策略模式」
之前写过一篇什么是「设计模式」?,没有类图,没有代码,有些同学说看不太懂,今天给大家带来策略模式(有图,有码,有真相!)。 英雄联盟(LOL)玩过LOL的同学都知道,LOL有上百个英雄,如果用OO技术来设计这些英雄该怎么办?小明:简单,先来个父类(Superclass),然后让…
设计模式 (一) 工厂模式 五种写法总结
设计模式相关的文章学习与总结,一直有意为之,一直又觉得时机不到。
一 是怕自己代码经验还不够,学习了也不懂,强行理解没有意义。
二 是怕自己学习了以后总结出来,万一有不对的地方,误人子弟。
而在现在的公司摸爬滚打半年后,感觉自己写代码遇到了瓶颈,想写好写优雅,却不清楚这么写究竟是自以为优雅 还是真的优雅。或对着看一些系统源码、框架源码时,不太理解他们这么写是为什么。
于是我开始了学习之路,从比较简单的工厂模式开刀,看了大概 10 + 篇资料,发现各位大大对工厂模式的各种写法叫法不一,理解也不一,而且没有一篇是 比较全的收录各种写法 的。so,这也坚定了我将它总结写出来的决心,既然每个人的理解都有或多或少的缺失或冲突,那我也总结一份我的理解,呈现出来,供各位看官参考 点评。
Java 设计模式之责任链模式
责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。
回馈顾客, 活动搞起 — 策略模式
前情提要 上集讲到, 小光引入了饮料机 (工厂方法模式) 改进了光氏饮品的生产过程. 现在如果要新上什么饮品, 改变配方什么的, 都很简单了, 直接增加一个饮料机, 或是替换 / 拿掉一个饮料机就可以了. 表妹再也不抱怨了. 小光也找了些饮料厂商拿到了一些试喝的饮料新品. 心想, 正好…
光氏饮品升级了 — 工厂方法模式
前情提要 上集讲到, 小光的热干面店, 开始搭配提供饮料了. 再加上美女表妹的助阵, 生意是红红火火啊. 然而, 事情也不是尽善尽美的, 慢慢小光就听到了一些的客户的声音: 酸梅汤太酸了, 能调好点吗? 天冷了能来点热饮吗? 客户可是上帝啊, 小光立马就着手改进. 表妹的抱怨 …
观察者模式的 Java 实现及应用
自己用代码实现一个观察者模式;
利用 Java 提供的包实现一个观察者模式;
观察者模式在 Android 中的应用举例。
设计模式系列1–开篇漫谈
大概花了一个半月的时间把市面上比较知名的设计模式类的书全部买回来学习了一遍,这些书里面有好有坏。如果想系统的学习设计模式,我建议还是买书看,因为书上的知识比较系统和权威,不像网上的文章良莠不齐,虽然有很多有些的博客的文章不错,但是刚开始自学也没有能力去分辨。 这篇文章应该算是学…
Android 源码中的组合模式
分享 Android 源码中的组合模式。
设计模式系列 11– 桥接模式
image 假设要实现一个给客户发送提示消息的功能,发送的消息类型可分为:普通消息、加急消息、特加急消息等等,而每种消息的发送的方式一般有:系统内推送、手机短信、电子邮件等等。如果让我们来实现,会怎么做呢? 我们先来实现一个简单的版本,使用系统推送和电子邮件发送普通消息,实现起…
Java设计模式之状态模式
状态模式简介 在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。 意图:允许对象在内部状态发生改变时改变它的行为,对象看起…
设计模式系列9–状态模式
image 今天我们来做一个糖果机吧,用户只需要投入25美分,就可以购买糖果了,具体的构造如下图所示: image 每个圆圈都表示一种状态,而每个箭头都表示一种动作,这些状态随着不同动作的进行就可以不断切换。从图中可以看到我们有四种状态和四种动作,那么废话不多说,下面我们就来看…
大龙帮忙去谈判—代理模式
前情提要 上集讲到, 小光利用装饰者模式调校好了饮品加料(糖, 冰, 蜂蜜…)的流程. 从此再也不怕客户的各种要求了. 各式饮品也成了小光热干面店的一大特色. 当然, 饮品的试喝也不是无期限了. 试喝期快结束了, 小光跟表妹商量了下, 结合顾客们的反馈, 他们选定了其中三家…
设计模式系列8–策略模式
场景分析 我们在网上购买商品的时候,经常遇到各种打折优惠活动,不同的节假日或者时间优惠策略都不相同,如果让我们去实现,那么如何做呢? 常规做法是根据不同的优惠政策,使用if进行判断,写很多判断分支进行处理。类似下面这种。 if (正常价格) { //具体优惠策略处理 }else…
适配器模式 : 农村小伙娶乌克兰美女
从农村小伙娶乌克兰美女,谈到适配器模式,包教包会
设计模式系列4–生成器模式
image 假设我们要生产一台手机,为了方便我们把生产手机的步骤分为三大步: 生成cpu 生成其他零配件 生成屏幕 然后把这三部生成的产品组装起来就生成了一部手机。假设我们要生成不同品牌的手机那么就要不断重复着三个步骤去生成不同的产品然后组装。可以发现在这个过程中,生成一部手机…
Java 设计模式之单例模式
单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个 Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态,避免政出多头。
可乐要加冰才好喝啊 — 装饰模式
前情提要 上集讲到, 小光利用策略模式搞起了回馈顾客的活动. 还别说, 客流量增大不少. 然而, 随之而来的, 顾客的声音也不少: 可乐能不能加冰啊 绿豆汤加点糖呗 …… 众口难调嘛, 大家的需求不一, 有的要冰有的不要, 有的加糖有的不要… 小光带着客户的意见, …
常用设计模式汇总
Head First 设计模式整理
观察者模式(ObserverPattern)
转载请注明出处:http://www.jianshu.com/p/d55e…:https://zhuanlan.zhihu.com/baron文章中的例子和思路均来自于《Head First》 场景 我们接到一个来自气象局的需求:气象局需要…
设计模式的几大原则
本篇文章我们组织 ThinkKeep 中的一篇, 来自于本人, 虽然是很经典的东西, 又有多少人真正掌握呢?
小光热干面提供饮料了 — 简单工厂
前情提要 本意是想像美剧的 previously 那样, 不知道怎么翻译好, 求翻译达人赐教… 上集讲到, 小光辞了工作, 开起了热干面的店子, 用 Builder 模式改造了热干面的构建过程, 是日渐稳定有效起来, 生意也是越来越好. 但是小光是善于观察的同学啊, 他发现热干面真…
卖热干面的启发 —Builder 模式
看个故事 互联网寒冬来袭, 小光越来越觉得码农这个行当不太好混了. 年关将至, 思乡之情也是倍切. 心底一横, 要不直接回老家做点小买卖得了~ 说做就做, 小光辞了工作, 回到老家武汉, 做起了卖热干面的行当. 小光秉着科学开店, 合理经营的心思, 走访老店, 探索人流, 最终把…
观察者模式(从放弃到入门)
这个观察者模式的例子完整的结合了书本,自己的思考,以及 Java 的源码,感觉写下来我自己也受益匪浅,希望能给你也有一定的帮助。