设计模式
心意乱2m
这个作者很懒,什么都没留下…
展开
-
Java设计模式 备忘录模式
备忘录模式开发中常见的应用场景: – 棋类游戏中的,悔棋 – 普通软件中的,撤销操作 – 数据库软件中的,事务管理中的,回滚操作 – Photoshop软件中的,历史记录结构: – 源发器类Originator – 备忘录类Memento – 负责人类CareTakerStack 常用方法方法名描述empty判断堆栈是否为...翻译 2019-03-28 21:50:12 · 252 阅读 · 0 评论 -
Java设计模式 适配器模式
适配器模式工作中的场景经常用来做旧系统改造和升级如果我们的系统开发之后再也不需要维护,那么很多模式都是没必要的,但是不幸的是,事实却是维护一个系统的代价往往是开发一个系统的数倍。我们学习中见过的场景java.io.InputStreamReader(InputStream)java.io.OutputStreamWriter(OutputStream)...翻译 2019-03-28 21:31:06 · 245 阅读 · 0 评论 -
Java设计模式 责任链模式
责任链模式责任链的应用场景Servlet API 中的 Filter 过滤器MVC 框架中的拦截器. . .简单使用责任链模式拆分 Servlet API 中的过滤器模拟 Servlet 中的 Request 对象/** * @desc <b>模拟 Servlet 中的 Request 对象</b> * * @author jia...翻译 2019-03-28 21:29:58 · 247 阅读 · 0 评论 -
Java设计模式 观察者模式
观察者模式使用场景: 控屏软件 : 比如 , 红蜘蛛 , 等通知者抽象层public abstract class AbstractSubject { protected List<AbstractObserver> observers = new ArrayList<>(); public boolean addObserver(Abstr...翻译 2019-03-28 21:28:54 · 238 阅读 · 0 评论 -
Java设计模式 组合模式
组合模式: Composite使用组合模式的场景: 把部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式处理部分对象和整体对象。组合模式核心:– 抽象构件(Component)角色: 定义了叶子和容器构件的共同点– 叶子(Leaf)构件角色:无子节点– 容器(Composite)构件角色: 有容器特征,可以包含子节点开发中的应用场景: – 操作系统的...翻译 2019-03-28 21:27:49 · 229 阅读 · 0 评论 -
Java设计模式 策略模式
策略模式• 本质: – 分离算法,选择实现。• 开发中常见的场景: – JAVASE中GUI编程中,布局管理 – Spring框架中,Resource接口,资源访问策略 – javax.servlet.http.HttpServlet#service()活动抽象层public interface Activity { public BigDecimal s...翻译 2019-03-28 21:26:10 · 251 阅读 · 0 评论 -
Java设计模式 模板模式
模板模式什么时候用到模板方法模式:实现一个功能整体步骤一致, 实现方式可能不同这样就可以抽象成一个公共的父类提供子类去实现实际开发场景:最典型的还是属于: serlet 中的 service 方法模板模式实例code分页封装类public class Page<T> { // 当前页 private Integer curr; // ...原创 2019-03-27 19:45:15 · 380 阅读 · 0 评论 -
Java设计模式 桥接设计模式
桥接设计模式桥接模式实际开发中应用场景 – JDBC驱动程序 – AWT中的Peer架构 – 银行日志管理:• 格式分类:操作日志、交易日志、异常日志• 距离分类:本地记录日志、异地记录日志 – 人力资源系统中的奖金计算模块:• 奖金分类:个人奖金、团体奖金、激励奖金。• 部门分类:人事部门、销售部门、研发部门。 – OA系统中的消息处理:• 业务类型:普通消息...翻译 2019-03-27 19:43:46 · 308 阅读 · 0 评论 -
Java设计模式 建造者模式
建造者模式开发中应用场景: – StringBuilder类的append方法 – SQL中的PreparedStatement – JDOM中,DomBuilder、SAXBuild创作者模式codeCPUpublic class CPU { private String name; // Getter(), Setter(), toString()...翻译 2019-03-27 19:42:22 · 251 阅读 · 0 评论 -
Java设计模式 工厂设计模式
工厂设计模式工厂模式要点: – 简单工厂模式(静态工厂模式) • 虽然某种程度不符合设计原则,但实际使用最多。 – 工厂方法模式 • 不修改已有类的前提下,通过增加新的工厂类实现扩展。 – 抽象工厂模式 • 不可以增加产品,可以增加产品族! • 应用场景 – JDK中Calendar的getInstance方法 – JDBC中Connect...翻译 2019-03-27 19:39:11 · 305 阅读 · 0 评论 -
Java设计模式 原型模式
原型模式 prototype短时间大量创建对象时,原型模式和普通new方式效率测试• 开发中的应用场景 – 原型模式很少单独出现,一般是和工厂方法模式一起出现,通过clone的方法创建一个对象,然后由工厂方法提供给调用者。• spring中bean的创建实际就是两种:单例模式和原型模式。(当然,原型模式需要和工厂模式搭配起来)clone 存在浅克隆和深克隆浅克隆的内存引用...翻译 2019-03-27 19:29:06 · 277 阅读 · 0 评论 -
Java设计模式 代理模式
代理模式应用场景: – 安全代理:屏蔽对真实角色的直接访问。 – 远程代理:通过代理类处理远程方法调用(RMI) – 延迟加载:先加载轻量级的代理对象,真正需要再加载真实对象。 比如你要开发一个大文档查看软件,大文档中有大的图片,有可能一个图片有100MB,在打开文件时不可能将所有的图片都显示出来,这样就可以使用代理模式,当需要查看图片时,用proxy来进行大图片的打开。...翻译 2019-03-27 19:27:17 · 222 阅读 · 0 评论 -
Java设计模式 享元模式
享元模式– FlyweightFactory享元工厂类• 创建并管理享元对象,享元池一般设计成键值对– FlyWeight抽象享元类• 通常是一个接口或抽象类,声明公共方法,这些方法可以向外界提供对象的内部状态,设置外部状态。– ConcreteFlyWeight具体享元类• 为内部状态提供成员变量进行存储– UnsharedConcreteFlyWeight非共享享元类•...翻译 2019-03-27 19:25:41 · 201 阅读 · 0 评论 -
Java设计模式 中介者模式
中介者模式在程序 API 接口调用复杂化的时候可以使用中介模式对程序 API 接口进行管理中介者接口public interface Manager { public void register(String taget, Department department); public void call(String taget); }中介者实现类pub...原创 2019-03-27 18:46:52 · 318 阅读 · 0 评论 -
Java设计模式 单例设计模式
单例设计模式常见的五种单例模式实现方式– 主要:饿汉式(线程安全,调用效率高。 但是,不能延时加载。)懒汉式(线程安全,调用效率不高。 但是,可以延时加载。)其他:双重检测锁式(由于JVM底层内部模型原因,偶尔会出问题。不建议使用)静态内部类式(线程安全,调用效率高。 但是,可以延时加载)枚举式(线程安全,调用效率高,不能延时加载。并且可以天然的防止反射和反序列化漏洞!)...翻译 2019-03-28 21:52:18 · 254 阅读 · 0 评论