《HeadFirst设计模式》书摘-单例/命令/适配器/外观
来源:互联网 发布:阿里云 wordpress 编辑:程序博客网 时间:2024/06/13 06:02
单例模式
定义
确保一个类只有一个实例,并提供全局访问点
要点
- 单例模式也提供访问这个实例的全局点
- 在java中实现单例模式需要私有的构造器,一个静态方法和一个静态变量
- 确定在性能和资源上的限制,然后小心地选择适当的方案来实现单例模式,以解决多线程问题
- 小心,如果使用多个类加载器,可能导致单件失效而产生多个实例
- 如果使用jvm1 2或之前的版本,你必须建立单例注册表,以免垃圾收集器将单例回收
命令模式
定义
将请求封装成对象,这可以让你使用不用的请求,队列,或者日志请求来参数化其他对象,命令模式也可以支持撤销操作
要点
- 命令模式将发出请求的对象和执行请求的对象解耦
- 在被解耦的两者之间是通过命令对象进行沟通的,命令对象封装了接受者和一个或一组动作
- 调用者通过调用命令对象的execute()发出请求,这会使得接收者的动作被调用
- 调用者可以接受命令当做参数甚至在运行时动态的进行
- 命令可以支持撤销,做法是实现一个undo方法来来回到execute()地执行的状态
- 宏命令是命令的一种简单的延伸,允许调用多个命令,宏方法也可以支持注销
- 实际操作时,很常见用“聪明”命令模式,就是直接实现了请求,而不是将工作委托给接收者
- 命令模式也可以用来实现日志和实务系统
适配器模式/外观模式
适配器模式定义
将一个类的接口,转换成客户期望另一个接口,适配器让原来不兼容的类可以工作无间
外观模式定义
提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用
get到的oo原则
只和朋友交谈
要点
- 当需要使用一个现有的类而其接口并不符合你的需要时,就使用适配器
- 当需要简化并统一一个很大的接口或者一群复杂的接口时,使用外观模式
- 适配器改变接口以符合客户的期望
- 外观将客户从一个复杂的子系统中解耦
- 实现一个适配器可能需要一番功夫,也可能不费功夫,视目标接口的大小和复杂度而定
- 实现一个外观,需要将子系统组合进外观中,然后将工作委托给子系统执行
- 适配器模式有两种形式:对象适配器和类适配器,类适配器需要用到多重继承
- 你可以为一个子系统实现一个以上的外观
- 适配器将一个对象包装起来以改变其接口,装饰者将一个对象包装起来以增加新的行为和责任,而外观将一群对象包装起来以简化其接口
阅读全文
0 0
- 《HeadFirst设计模式》书摘-单例/命令/适配器/外观
- HeadFirst 设计模式 7适配器模式与外观模式
- HeadFirst设计模式--适配器模式
- HeadFirst设计模式--单例模式
- HeadFirst 设计模式学习笔记7--适配器模式和外观模式
- HeadFirst 设计模式学习笔记7--适配器模式和外观模式
- HeadFirst设计模式学习笔记4-适配器模式&外观模式
- HeadFirst 设计模式学习笔记6--适配器模式和外观模式
- HeadFirst 设计模式笔记(七)—— 适配器模式与外观模式
- 深入浅出设计模式之命令模式、适配器模式、外观模式
- 设计模式-(命令模式、适配器模式、外观模式)
- 《HeadFirst设计模式》书摘-策略模式/观察者模式
- 《HeadFirst设计模式》书摘-状态模式/代理模式
- 《HeadFirst设计模式》书摘-模板方法/模式迭代器/组合
- 设计模式(单例模式、外观模式)
- HeadFirst 设计模式学习笔记5--单例模式
- HeadFirst 设计模式学习笔记5--单例模式
- HeadFirst 设计模式学习笔记5--单例模式
- Java实现-螺旋矩阵2
- 《HeadFirst设计模式》书摘-模板方法/模式迭代器/组合
- androidfinish Activity时报ConcurrentModificationException异常并闪退
- CSS
- Android Studio 使用Git 版本管理并提交到Github 详解
- 《HeadFirst设计模式》书摘-单例/命令/适配器/外观
- 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
- C# 接口的隐式与显示实现
- 算法课十七周 Single Number
- 编译安装libfreenect2时错误问题
- 《HeadFirst设计模式》书摘-状态模式/代理模式
- mysql中group by和order by同时使用无效的替代方案
- Spring基础
- Android基础控件