Talk is cheap,show me the code _

随笔分类 -  设计模式

摘要:忽然看到迭代器模式,在集合中能经常遇到 1.迭代器模式(Iterator Pattern) 使用者不需要知道对象内部结构,便可遍历对象内部的元素 迭代器模式的组成: Iterator:迭代器接口 Container:迭代器容器接口 ContainerConcrete:容器实现类 2.流程 2.1 I 阅读全文
posted @ 2022-11-27 19:20 Howlet 阅读(27) 评论(0) 推荐(0) 编辑
摘要:最近在看状态机,先逐步从状态模式学起 1. 状态模式(State Pattern) 允许对象在内部状态改变时改变它的行为, 对象看起来好象改了它的类。在传统中编程中使用 if-else 对所有情况判断并作出对应的行为,这不仅违背了开闭原则,而且会显得臃肿难于阅读和维护,状态模式是用来解决这个问题的 阅读全文
posted @ 2022-07-11 22:07 Howlet 阅读(32) 评论(0) 推荐(0) 编辑
摘要:设计模式没有具体的落地代码,写着总感觉是抽象的概念而已 1. 备忘录模式(Memento Pattern) 在不违反封装的情况下保存、获取对象的内部状态,然后在需要的时候可以恢复之前的状态。应用在存档、回退操作(ctrl + z、浏览器回退) 备忘录模式的组成: Originator:发起者 Mem 阅读全文
posted @ 2021-12-21 23:05 Howlet 阅读(50) 评论(0) 推荐(0) 编辑
摘要:手腕旧伤又疼了,想当键盘侠都难,最近都没有输入输出,颓废了 1. 命令模式(Command Pattern) 将 请求 封闭成对象,以便使用命令来参数化其它对象,或者将命令对象放入队列中进行排队对行为进行记录、撤销或重做、事务等处理。应用在请求行为和实现者需要解耦的场合,以便撤销等动作 命令模式的组 阅读全文
posted @ 2021-09-13 20:44 Howlet 阅读(35) 评论(0) 推荐(0) 编辑
摘要:团建去吃火锅了,回来没时间写笔记,发篇以前写过的设计模式把 1. 享元模式 享元模式是一个重用现有对象来减少内存占用和提高性能的模式,有点类似单例模式,但是享元可以创建多个不同的对象。主要思路是用一个 HashMap 来存放已经创建的对象(每个对象有唯一标识),每次创建对象前先查找 HashMap。 阅读全文
posted @ 2021-08-30 21:49 Howlet 阅读(33) 评论(0) 推荐(0) 编辑
摘要:暂时还没遇到需要这种设计模式的情景,笔者一般会把层次结构放到数据库里,用 parentId 来标识父子关系 1. 组合模式(Composite Pattern) 将对象组合成树形结构以表示 “部分-整体” 的层次结构,使得用户对单个对象和组合对象的使用具有一致性 组合模式的组成: 抽象根节点(Com 阅读全文
posted @ 2021-08-29 08:34 Howlet 阅读(29) 评论(0) 推荐(0) 编辑
摘要:日常总能看到用 build 方法创建一个对象,当时就在想问什么这么麻烦,直接 new 一个不可以吗? 1. 建造者模式(Builder Pattern) 建造者模式是将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。它是构造方法的一种代替,当构造函数的参数多于4个,且部分参数是 阅读全文
posted @ 2021-08-08 12:53 Howlet 阅读(43) 评论(0) 推荐(0) 编辑
摘要:上一篇的java标准日志出现了日志门面,肯定有人会问什么是门面? 1. 门面模式(Facade Pattern) 门面提供统一的接口去访问多个子系统的不同接口,它为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用。简单地说:通过门面就可使用该系统所有的功能,而不用接触背后复杂的关系 门 阅读全文
posted @ 2021-07-25 10:05 Howlet 阅读(64) 评论(0) 推荐(0) 编辑
摘要:在学习SpringMVC的过程中,看到了适配器模式,然后就记下了,回来填坑 1. 适配器模式(Adapter Pattern) 将一个接口转换成客户希望的另一个接口,使不兼容的类可一起工作,其组成可分为: Target:客户所需要的接口 Adapter:适配器 Adaptee:被适配者 2. 流程 阅读全文
posted @ 2020-03-04 11:18 Howlet 阅读(198) 评论(0) 推荐(0) 编辑
摘要:1. 观察者模式(Observer Pattern) 指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,它是对象行为型模式。主题(Subject)具有注册和移除观察者、并通知所有观察者的功能,主题是通过维护一张观察者列表来实现这些操作的。 顾名思 阅读全文
posted @ 2020-02-23 17:02 Howlet 阅读(183) 评论(0) 推荐(0) 编辑
摘要:javaWeb中的Listener中涉及到了监听器模式,所以回来补充一下 1. 监听器模式(Listener Pattern) 监听器模式用来监听某个对象发生的事件,当此对象发生被监听的事件后,监听器的某个方法将被执行,其主要组成有: 事件源 , 事件监听器 , 事件对象 2. 流程 监听器模式很简 阅读全文
posted @ 2020-02-18 12:20 Howlet 阅读(182) 评论(0) 推荐(0) 编辑
摘要:1. 责任链模式 (Chain of Responsibility Pattern) 在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客 阅读全文
posted @ 2020-02-17 21:20 Howlet 阅读(170) 评论(0) 推荐(0) 编辑
摘要:1. 桥接模式(Bridge Pattern) 桥接模式是一种对象结构型模式,是将抽象部分与它的实现部分 分离,使它们都可以独立地变化,其主要对象有: Abstraction:抽象类 RefinedAbstraction:抽象类的具体实现 Implementor:实现类接口 ConcreteImpl 阅读全文
posted @ 2020-02-15 11:46 Howlet 阅读(146) 评论(0) 推荐(0) 编辑
摘要:1. 模板模式(Template Method) 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。 简单来说:给出实现某件事的步骤顺序,这些顺序我们不能改变,我们只能改变步骤的内容。比如给出步骤顺序:1.动物先清洗 2. 动物 阅读全文
posted @ 2020-02-09 14:23 Howlet 阅读(216) 评论(0) 推荐(0) 编辑
摘要:1. 策略模式(Strategy Pattern) 给一个对象(context )以不同的策略(Strategy ),该对象就会执行不同的策略算法,这里需要三个对象 策略算法接口 每个算法的具体实现 Context 对象 2. 流程 2.1 策略算法接口 2.2 策略算法的具体实现 坐飞机 坐火车 阅读全文
posted @ 2019-12-12 10:24 Howlet 阅读(231) 评论(0) 推荐(0) 编辑
摘要:1. 代理模式(Proxy Pattern) 我们需要的东西通过代理对象拿去,而不需要去真正的实现对象,前提是代理对象和被代理对象需要实现相同的接口,而代理在这里相当于中介,并且我们也需要创建一个代理对象 2. 代理的实现 1.2 静态代理 有点类似装饰者模式,话不多说上代码 1.共同的接口 2.实 阅读全文
posted @ 2019-12-11 17:19 Howlet 阅读(290) 评论(0) 推荐(0) 编辑
摘要:1. 装饰者模式(Decorator Pattern) 定义 在不改变原代码结构的情况下,动态地扩展一个对象的功能,相比继承有更灵活的实现方式。见名知意,其就是在需要增强功能的对象上包装一层代码,达到增强功能的效果 作用 装饰者模式在对象创建好之后才动态给对象增加功能,也可以选择不增加,自由灵活。而 阅读全文
posted @ 2019-12-11 09:26 Howlet 阅读(871) 评论(0) 推荐(0) 编辑
摘要:1. 工厂模式(Factory Pattern) 把创建对象的工作交由工厂来完成,我们负责向工厂拿取就行,这样就不用关注创建的逻辑,也实现了解耦。 之前用过的 DbUtils,SpringIoc都有解耦,降低代码间的依赖性 工厂模式解耦,复杂的初始化过程由工厂完成,只需在工厂修改,不用再每一次出现的 阅读全文
posted @ 2019-12-10 20:52 Howlet 阅读(175) 评论(0) 推荐(0) 编辑
摘要:1. 单例模式(Singleton) 单例简单的说明 : 一个类只能有一个实例,该类能自己创建这个实例,并且对外提供获取该实例的接口 单例用在哪? 有时候我们只需要一个类就可以完成所需要的业务了,那么就不需要多次创建对象、管理对象,因为这是一件十分耗费系统资源的事 2. 单例的多种写法 参考上面简单 阅读全文
posted @ 2019-12-10 13:14 Howlet 阅读(169) 评论(0) 推荐(0) 编辑

Copyright © By Howl

点击右上角即可分享
微信分享提示