设计模式
Mason97
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Head First 设计模式 读书笔记
1. 策略模式 例子:一个鸭子类的飞翔行为:不能飞;正常飞;火箭助推…(都实现飞翔接口)。我们在鸭子类中增加一个飞翔行为对象。通过设置具体鸭子(继承于鸭子类)的飞翔行为对象,描述它的具体飞翔方式 定义:定义算法族,封装起来,可以相互替换,让算法的变化独立于使用算法的客户。 2. 观察者模式 ...原创 2020-11-08 16:58:41 · 218 阅读 · 0 评论 -
设计模式 之 单例模式
定义:确保一个类只有一个实例,并提供一个全局的访问点 /** * 设计一个单例模式的类 */ public class Demo02 { // 私有的空参构造方法 private Demo02() { } // 私有的静态成员变量 private static Demo02 uniqueInstance = new Demo02(); // 能够返回唯一的对象的方法公共静态方法 public static Demo02 getInstance(原创 2020-05-20 11:22:16 · 139 阅读 · 0 评论 -
设计模式 之 观察者模式
观察者模式 定义: 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新 解决的问题: 一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。 理解: “一”就相当于报社,“多”就相当于订这家报社的人,如果有新闻,报社就会把报纸派发给所有订报纸的人。【报社内部有一个订报纸的人的列表】 可观察者不需要知道观察者的具体类是谁,做了些什么或其他任何的细节。 主题不在乎别的,它只会发送通知给所有实现了观察者接口的对象。 关键代码: 在可观察原创 2020-05-12 21:56:37 · 140 阅读 · 0 评论 -
设计模式 之 策略模式
策略模式 定义: 定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 诀窍: 多用组合,少用继承;针对接口编程,不针对实现编程。 举例子: 将weapon独立起来。 public class Fighter { Weapon weapon; public void fight() { weapon.attack(); } public void setWeapon(Weapon weapon) {原创 2020-05-12 20:28:46 · 144 阅读 · 0 评论 -
动态代理
分类: 基于接口的动态代理 基于子类的动态代理 特点: 字节码随用随创建,随用随加载 作用 不修改源码的基础上对方法增强 基于接口的动态代理: 涉及的类:Proxy 提供者:JDK官方 如何创建代理对象:使用Proxy类中的newProxyInstance方法 创建代理对象的要求: 被代理类最少实现一个接口,如果没有则不能使用 newProxyInstance方法的参数: Cla...原创 2020-04-14 14:52:34 · 133 阅读 · 0 评论
分享