设计模式
qq_lindy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式--简单工厂
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-06-18 22:45:52 · 117 阅读 · 0 评论 -
Adapter(Wrapper 包装器,转换器)接口转换器--以及常见的误区
这里的jdbc-odbc bridge不是桥接模式,而是适配器模式。Adapter适配器模式容易产生的误区这里的WindowAdapter不是适配器模式,而是一种编程方法。 只是为了方便编程而已。public abstract class WindowAdapter implements WindowListener, WindowStateListener, WindowFocusL...转载 2019-07-15 15:19:18 · 261 阅读 · 0 评论 -
Bridge模式双维度扩展
Bridge模式实际当中用的挺少。把抽象部分的继承树的发展,与具体实现部分的继承树的发展分离,但是在抽象部分聚合一个具体实现(每一个Gift都有个GiftImpl),两个维度让他们可以独自发展。Gift -> WarmGift ColdGift WildGiftGiftImpl -> Flower Ring Car礼物分温柔的礼物和狂野的礼物或者从WarmGift继承,...转载 2019-07-15 16:13:59 · 175 阅读 · 0 评论 -
设计模式--组合Composite--树状结构专用模式
图解代码package com.qqlindy.composite;import java.util.ArrayList;import java.util.List;abstract class Node { abstract public void p();}class LeafNode extends Node{ String content; ...转载 2019-07-01 14:09:23 · 139 阅读 · 0 评论 -
设计模式--访问者-Visitor
在结构不变的情况下动态改变对于内部元素的动作。 这个设计模式用的很少,且特殊。编译器的例子: 编译器的抽象语法树进行语法分析,在语法分析的时候会用到Visitor模式。内部结构固定的情况下使用visitor. 下面的Computer 类就是固定的(假设Computer只有三种组成)。visitor模式只适用于内部结构固定的。package com.qqlindy.visitor;p...转载 2019-07-11 17:38:17 · 200 阅读 · 0 评论 -
State状态模式--根据状态决定行为
如果一个类很多动作都是要根据state不同的状态去是实现的话,把State抽象出来,在具体的State里面实现这个方法。State模式的方法应该是固定的,根据不同的状态去写这些固定的方法实现。 如果方法是扩展的,State模式是不合适的。当然如果状态时固定的。直接写Switch...转载 2019-07-24 13:25:05 · 255 阅读 · 0 评论 -
设计模式总结。 Intepreter解释器---动态脚本解析--用的很少,写起来麻烦
创建型模式:对象怎么创建出来结构型模式: 观察类和类之间的结构行为型模式:类的动作主要记住这些模式的典型用法和类图。Abstract FactoryFactory MethodSingleton面向对象六大原则比如Person这个类就是“人”的属性。 而“人”的管理不要放到Person类里,新建一个类PersonManager.扩展的时候,添加新的子类扩展所有使用父类...转载 2019-07-24 15:25:59 · 218 阅读 · 0 评论 -
Command--封装命令模式
Command–命令模式,使用的挺多的。可能没感觉到。结构Chain Of Resposibility 实现undo功能(撤销功能Ctrl+Z)。Command–命令模式 别名: Action/Transacion , 就是用来封装各种各样的命令。...转载 2019-07-17 20:03:34 · 233 阅读 · 0 评论 -
Prototype--原型模式
Java 内部自带原型模式, 因为Java的Object类支持一个方法 Object.clone() . 原型模式也叫克隆模式。新生成的一个对象和原来的对象属性差不多一样,没必要new一个,再赋值属性值。 直接clone一个就叫原型模式。Cloneable 这个接口叫标记性接口,因为这个接口没有要求必须要实现的方法注意。克隆的是属性值,如果属性是个类对象,则新克隆的对象和原对象指向的是...转载 2019-07-22 17:08:10 · 156 阅读 · 0 评论 -
Memento--备忘录模式--记录状态,用于回滚
用于:记录快照(瞬时状态,记录对象的某个瞬间,类似照片) 存盘。转载 2019-07-22 17:58:22 · 127 阅读 · 0 评论 -
builder---构建复杂对象
这个模板方法非常像,这里强调的是构建对象。模板方法强调的是方法执行。public interface TerrainBuilder { //地形构建器 TerrainBuilder buildWall(); //墙 TerrainBuilder buildFort(); //碉堡 TerrainBuilder buildMine(); /...转载 2019-07-15 14:14:15 · 291 阅读 · 0 评论 -
jdk的动态代理;cglib
jdk的动态代理:import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.Random;/** * 使用代理模式,使用各种代理的组合 */public class Tank implement...转载 2019-07-15 11:50:32 · 105 阅读 · 0 评论 -
ASM
https://asm.ow2.io/转载 2019-07-12 20:24:13 · 121 阅读 · 0 评论 -
设计模式---单例模式Singleton
/** * 饿汉式 * 类加载到内容后,就实例化一个实例, * JVM保证线程安全: JVM保证每一个Class只会load到内存一次,static关键字是在Class load到内存之后马上就行初始化,也保证初始化一次。 * 简单实用,推荐使用 * 唯一缺点:不管用到与否,类装载时就完成实例化 * */public class Mgr01 { private ...原创 2019-06-19 00:05:44 · 124 阅读 · 0 评论 -
设计模式--策略模式
Comparable接口Comparator 接口jdk1.8之后接口里是可以有方法实现的,因为要支持Lambda表达式。strategy_策略模式-1strategy_策略模式-2strategy_策略模式-3strategy_策略模式-4strategy_策略模式-5...原创 2019-06-19 16:25:16 · 239 阅读 · 0 评论 -
设计模式--工厂系列
定义:工厂方法在产品上扩展是很方便的, 而抽象工厂在具体的产品一族(食物, 武器, 交通工具)的扩展是方便的Spring 的bean工厂是更好的解决方案。简单工厂 随便一个方法,create一个新东西就是简单工厂。静态工厂 单例就是个静态工厂。 静态方法的产生。工厂方法: 在产品维度上扩展很方便。抽象工厂: 在具体产品一族上扩展很方便。Spring IOC...转载 2019-06-20 15:50:46 · 108 阅读 · 0 评论 -
设计模式--Facade门面-Mediator调停者
Facade门面:例如去政府部门办一件事情: 要跑政府的很多部门。 下面是改进。 它不是中介。一站式代办。Mediator调停者: 消息中间件就是Mediator调停者模式。部门内部打交道。-Facade门面-Mediator调停者可以看作是同一种设计模式...转载 2019-06-20 16:15:14 · 397 阅读 · 1 评论 -
设计模式--装饰器--Decorator
用聚合来代替继承转载 2019-06-21 14:47:38 · 120 阅读 · 0 评论 -
设计模式--享元Flyweight--重复利用对象; Java里的String就是用的享元模式。Java里的String所有的字符串都放在一个常量池里
享元–共享元数据, 小对象直接放池子里。 用的时候直接拿,不用new.坦克子弹代码:new 出来的 子弹在List里, 当子弹跑出整个页面时,把它的living标志置为false. 当需要新生成子弹时,把这个子弹位置改下,标志置为true即可。import java.util.ArrayList;import java.util.List;import java.util.UUID;...转载 2019-07-01 14:57:23 · 399 阅读 · 0 评论 -
欢设计模式--责任链--Chain Of Responsibility
转载 2019-06-27 23:54:46 · 110 阅读 · 0 评论 -
设计模式--代理--iterator迭代器
在物理层面上,做数据存储上只有两种形式, 一种就是连续存储,就叫数组。第二种跳着存储,就叫链表。所有其他所谓的容器,底层都是由这两种实现的。 各种HashSet, 各种List, 各种queue, Stack栈,本质都是由数组或者链表实现的。平常我们说的都是逻辑结构。 比如二叉树。 底层可以用数组或者链表实现。物理结构只有两种:数组和链表。 @Override publ...转载 2019-07-03 19:47:22 · 137 阅读 · 0 评论 -
TemplateMethod模板方法--换一个名词,钩子函数,回调函数
钩子函数就是模板方法这种模式。凡是我们重写一个方法系统自动帮我们调用的都可以称之为: TemplateMethod模板方法public class Main { public static void main(String[] args) { F f = new C1(); f.m(); }}abstract class F{ v...转载 2019-07-22 18:38:38 · 173 阅读 · 0 评论
分享