博客专栏  >  架构   >  设计模式学习笔记

设计模式学习笔记

读了《大话设计模式》一书,在这本书指引下再一次学习了一遍设计模式,并记录了多篇博客,实践并绘制了所有类图,记录了自己学习时的困惑与新的,相关代码及visio类图均托管之github: https://github.com/anLA7856/design

关注
2 已关注
25篇博文
  • 设计模式之builder模式

    虽然网上各种模式有多种讲法,但我还是要自己学一遍,写一遍学习心得。 今天看effective java,第二个讲的就是多个参数采用构造器的方法,也就是builder模式。 其实一开始我不是很懂,虽...

    2017-04-05 19:57
    233
  • UML类图关系示例

    这些天在学习设计模式,敲了一些代码,分享记录下来嘻嘻。 1、继承 如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”,而把B称为“A的父类别”也可以称“B是A的超类”。继承可以使得子类...

    2017-07-26 15:31
    116
  • 简单工厂模式--女娲造人造啥做啥

    有这样一个问题,以面向对象的方法去实现一个简单的计算器该怎么实现呢? 首先,有种很简单的思路,输入两个数,然后判断运算符类型,进行相应运算,最后输出结果。 这样的方法虽然也能完成,但是不符合面向对象的...

    2017-07-26 17:08
    211
  • 策略模式--同一个任务不同的策略

    有这样一种情况,一个商场举行活动,进行促销,开始一段时间采取的是打折的方式,假设打9折,如果要编这样 的一个程序,想必是非常简单的。后来老板发现现有的促销方式无法燃起消费者的购物欲,决定加大打折力度,...

    2017-07-26 22:38
    136
  • 装饰模式--可用或不用,还能自定义

    装饰模式,首先可以根据它的名字去理解。 例如这样的一个场景,早起要穿衣服,穿哪一件呢? 你可以T恤加牛仔加拖鞋的屌丝风; 也可以西服领带皮鞋的绅士风; 还能大T恤垮裤破球鞋的嘻哈路线; 。。...

    2017-07-27 22:49
    115
  • 代理模式--让替身帮你去干事儿

    代理模式,字面上很容易理解,别人帮你去做,实际上意义也差不多。 假设有这样一个情景: 有三位同学,分别是, 小A,性别男,爱好女; 小B,性别女,爱好学习; 小C,性别男,爱好小B; 小A和小C是很要...

    2017-07-28 10:05
    117
  • 工厂方法模式--简单工厂的再抽象

    又是一个名字里面有工厂的模式,首先一个问题,不免的会和简单工厂模式比较,并且很可能会混淆。 为了更好的与简单工厂模式比较,这里还是以简单工厂时举的计算器的例子例子来说明。 传送门:简单工厂--造啥...

    2017-07-28 11:57
    112
  • 原型模式--自我复制(结合Java浅复制与深复制)

    原型模式,字面上的理解,以原型为标杆的模式。 原型模式其实就是从一个对象再创建另外一个可定制对象,而且不需知道任何创建的细节。 我们可以用原型示例指定创建对象的种类,并且通过拷贝这些原型创建新的对...

    2017-07-28 16:09
    126
  • 模板方法模式--大步骤一样小实现不同

    听名字来说,模板方法,就是,方法是个模板,必须要按照模板来。 没错,差不多就是这个意思。 模板方法模式:定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。 模板方法使得子类可以不改变一个算...

    2017-07-28 16:53
    114
  • 外观模式--你指挥大管家就可以了

    外观模式,英文表述为Facade。 外观模式,为了子系统中的一组接口提供一个一致的界面,次模式定义了一个高层接口, 这个接口使得这一子系统更加容易使用。 通俗的讲,比如有很多机器,他们分别可以完...

    2017-07-28 20:53
    136
  • 建造者模式--一种更好的方法去装配复杂的实例

    试想可能有这样一种情况,公司要造一个机器人,老大决定把这个艰巨的任务交给你。 你就去做了,一步一步来: 先造头, 再造一个身子, 再造一个左手, 再造一个右手, 再造一个左脚, 再造一个...

    2017-07-28 22:40
    294
  • 观察者模式--帮我把个风

    观察者模式,从名字来讲就是观察的意思, 一个比较有意思的例子,考试作弊是怎样的? 一个或者多个望风的,其他的紧锣密鼓的抄,一有情况,赶紧停下来。 没错,观察者模式也大概就是这样的流程。 先看类...

    2017-07-29 10:38
    113
  • 抽象工厂模式

    相对于开始讲的简单工厂模式和工厂方法模式,抽象工厂模式则是进一步抽象我觉得。 比如在之前的需求上,进一步增加需求,整个需求在原需求的范围之外。 很平常的一个例子就是更换数据库,你的dao层代码可能...

    2017-07-29 12:13
    116
  • 状态模式--将条件拆分出去的漂亮方法

    或许很多人都遇到过这样的一种状况: 写代码时,有好多不同的条件,以前最开始喜欢用if/else来进行, 但是当if/else语句达到三层时,就已经非常难维护的,是极不推荐的。 后来学到了swit...

    2017-07-29 14:28
    130
  • 适配器模式--不要和装饰模式混淆了

    一开始看适配器模式的时候,我也感觉有点和装饰模式混淆了, 这里先贴张装饰模式的类图: 传送门:装饰模式--可用或不用,还能自定义 装饰模式,目的是为了在原有类功能的基础上,扩展其他功能而...

    2017-07-29 15:17
    117
  • 备忘录模式--敲代码记得Ctrl+s

    备忘录模式(Memento): 在不破坏封装性的前提下,波或一个对象的内部状态,并在改对象之外保存这个状态。 这样以后就可以将改对象恢复到保存的状态。 很常见的一个情景就是在玩游戏的时候...

    2017-07-29 16:34
    128
  • 组合模式--部分与整体的解决方案

    其实我一开始念组合模式的时候,差点和建造者模式混淆, 我以为就是多个子部分组合到一起,然后就是差不多组合模式。 然后我发现我的第一感觉是错误的。 先看个类图吧: 类图十分的简单。 并且第一...

    2017-07-29 17:40
    205
  • 迭代器模式--没错就是Iterator

    相信Java中的Iterator很多人都用过,而本文却不是介绍Iterator的, 而是介绍Iterator中用到的迭代器模式。 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个...

    2017-07-29 20:19
    131
  • 桥接模式--继承并不一定总是最优

    或许一般敲代码时,总会想到用继承或者实现接口的方式来使得代码结构最清晰, 最易于维护。 但是呢,正如标题所说的,并不是所有的情况继承都是最好的。 看下面一个例子。 在过去传统手机时代,也就是诺...

    2017-07-29 21:58
    127
  • 命令模式

    命令模式(Command),将一个请求封装为一个对象,从而使你 可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。 也就是可以把命令队列统一的封装起来由特定的执行者...

    2017-07-29 23:47
    114
img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部