设计模式
我钟意饮王老菊
Just lose it
展开
-
单例模式双重检测锁详解以及为何双重检测
前言:在了解完volatile关键字之后,再仔细思考了单例模式的双重检测,发现以前挺多东西还没懂的。DCL(Double Check Lock)public class Singleton { private volatile static Singleton uniqueInstance; private Singleton() {} public static Singleton getInstance() { //第一次检测 if (uniqueInstance == null原创 2020-05-22 11:49:55 · 4245 阅读 · 4 评论 -
Head First 设计模式之代理模式(Java例子)
前言:来源于《head first 设计模式》。当作读书笔记了,这次看的是第11章状态模式。这是最后一篇关于这本书的博客了。从2020-4-7开始写的第一篇策略模式一直到现在,唏嘘,终于还是来到了这里。代理模式(的概念允许对象在内部状态改变时改变它的行为,对象看起来好想改变了它的类静态代理模式的uml图此图来源于其他博客代理比较简单,其实就是委托给真正的对象来执行。静态代理也是比...原创 2020-04-27 14:37:18 · 195 阅读 · 0 评论 -
Head First 设计模式之状态模式(Java例子)
前言:来源于《head first 设计模式》。当作读书笔记了,这次看的是第10章状态模式。最后剩下没几章了,这几天花时间看完了,现在来才来写下记录。第二篇。状态模式的概念允许对象在内部状态改变时改变它的行为,对象看起来好想改变了它的类状态模式的uml图身份介绍:Context:是一个上下文的类,拥有一些内部状态State:定义一个具有所有具体状态的共同接口ConcreteS...原创 2020-04-27 13:17:22 · 162 阅读 · 0 评论 -
Head First 设计模式之迭代器与组合模式(Java例子)
前言:来源于《head first 设计模式》。当作读书笔记了,这次看的是第9章模版方法模式。最后剩下没几章了,这几天花时间看完了,现在来才来写下记录。迭代器模式的概念提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示适配器模式的uml图角色介绍:Clinet:代表客户代码Aggregate:一个共同的接口供所有的聚合使用,将客户代码与具体的集合对象实现解耦...原创 2020-04-27 12:09:05 · 200 阅读 · 0 评论 -
Head First 设计模式之模版方法模式(Java例子)
前言:来源于《head first 设计模式》。当作读书笔记了,这次看的是第8章模版方法模式。难顶呀每晚看完书,第二天早上总结。理解到了以前学习java、spring中的一些基础的概念,蛮有用的,希望自己可以一直坚持下去吧。模版方法模式的概念在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤适配器模式的uml...原创 2020-04-22 11:22:56 · 152 阅读 · 0 评论 -
Head First 设计模式之适配器模式与外观模式(Java例子)
前言:来源于《head first 设计模式》。当作读书笔记了,这次看的是第7章适配器模式以及外观模式。先从适配器模式再到外观模式。适配器模式的概念将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无限。适配器模式的uml图Client:用户类,使用新接口Target来完成某些特定的需求。Target:新的接口类,开放特定接口request来完成某些...原创 2020-04-22 10:20:52 · 173 阅读 · 0 评论 -
Head First 设计模式之命令模式(Java例子)
前言:来源于《head first 设计模式》。当作读书笔记了,这次看的是第六章装命令模式。命令模式的概念将请求封装成对象,这可以让你使用不同的请求、队列、或者日志请求来参数化其他对象,命令模式也支持撤销操作,当需要将发出请求和执行请求的对象解耦的时候,使用命令模式即可。命令模式的uml图简单介绍一下:命令(Command):为所有命令声明了一个接口。调用命令对象的 execu...原创 2020-04-21 11:38:10 · 199 阅读 · 0 评论 -
Head First 设计模式之单例模式(Java例子)
前言:来源于《head first 设计模式》。当作读书笔记了,这次看的是第五章装单例模式。连续看了两章,下一章预告命令模式。单例模式看着简单,但其中的道理并不少。单例模式的概念用于确保一个类只有一个实例,并提供全局访问点。由于过于简单吧,跳过日常举例子的环节,直接写出一步步演变的单例模式经典单例模式public class Singleton { private static ...原创 2020-04-21 08:58:08 · 243 阅读 · 0 评论 -
Head First 设计模式之工厂模式(Java例子)
前言:来源于《head first 设计模式》。当作读书笔记了,这次看的是第四章装工厂模式。其实这一章前几天就看完了,拖延癌晚期,没整理,今天就来填一下坑吧。抽象工厂模式的概念提供一个接口用于创建相关或者依赖对象的家族,并不需要明确指定具体类工厂方法模式的概念定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类注意:上述所写的接口并不是ja...原创 2020-04-17 15:22:53 · 137 阅读 · 0 评论 -
Head First 设计模式之装饰者模式(Java例子)
前言:来源于《head first 设计模式》。当作读书笔记了,这次看的是第三章装饰者模式。看得有点上瘾。。。抽出了点时间来总结一下。装饰者模式的概念动态地将责任附加到对象之上。想要扩展功能,装饰者提供有别于继承的另一种选择。head fitst基本操作举个例子head first里面举了两个例子,一个是星巴克一个我们熟悉的java i/o包。这里为了方便就用java i/o来展示我...原创 2020-04-12 18:48:20 · 245 阅读 · 0 评论 -
Head First 设计模式之观察者模式(Java例子)
前言:来源于《head first 设计模式》。当作读书笔记了,这次看的是第二章观察者模式。看得有点慢。有点小懒。。head first是一步步深入的,这里直接展示最终的观察者模式的成果。观察者模式的概念在对象之间定义一对多的依赖,这样依赖,当一个对象改变状态,依赖它的对象都会收到通知并自动更新。head fitst基本操作举个例子本次的例子是需要做一个气象测监应用。主要任务是建立一...原创 2020-04-12 13:14:41 · 248 阅读 · 0 评论 -
Head First 设计模式之策略模式(Java例子)
前言:最近在看<head first 设计模式>,第一章学习的是策略模式,这里记录一下看书的过程。写一下笔记,画个uml图加深印象。也喜欢对学习设计模式的读者有点帮助。策略模式的概念:定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的用户。举个例子理解:此例子来源于《head firsrt 设计模式》。设计一个模拟鸭子的应用。鸭子的主...原创 2020-04-07 15:42:00 · 227 阅读 · 1 评论