设计模式
huster12-zoujm
计算机应用技术
https://github.com/JamonJou
展开
-
设计模式--迭代器与组合模式Iterator&Component
定义:迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而不是暴露其内部的表示。UML图:组合模式:将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。UML图:OO原则封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 为交互对象之间原创 2014-12-25 19:36:12 · 510 阅读 · 0 评论 -
设计模式汇总
策略模式Strategy观察者模式Observer装饰者模式Decorator单例模式Singleton命令模式Command适配器模式Adapter模板方法模式Template迭代器与组合模式Iterator&Component工厂方法FactoryMethod代理模式Proxywiki上非常详细:http://en.wikipedia.org/w...原创 2014-12-25 18:16:58 · 525 阅读 · 0 评论 -
工厂方法FactoryMethod
设计模式:工厂方法原创 2017-08-08 15:43:29 · 262 阅读 · 0 评论 -
设计模式--命令模式Command
定义: 将请求封装成对象,以便使用不同的请求、队列、或者日志来参数化其他对象。命令模式也支持可撤销的操作。类图:实现:要点: 1 命令模式将发出请求的对象和执行的对象解耦。 2 在被解耦的两者之间是通过命令对象进行沟通的,命令对象封装了接受者和一个或一组动作。 3 调用者通过命令对象的execute()原创 2014-12-16 16:09:13 · 465 阅读 · 0 评论 -
设计模式--模板方法模式Template
一 定义 在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。核心:封装算法。二 例子public class Coffee{ void prepareRecipe(){ boilwater(); brewCoffeeGrinds(); pou原创 2014-12-25 09:15:43 · 461 阅读 · 0 评论 -
设计模式--策略模式Strategy
定义: 定义了算法族,分别封装起来,让它们之间可以相互替代,此模式让算法的变化独立于使用算法的客户。实现:UML图代码:Duck.javapackage com.zjm.duck;import com.zjm.fly.FlyBehavior;import com.zjm.quack.QuackBehavior;public abstract c原创 2014-11-27 18:17:50 · 582 阅读 · 1 评论 -
设计模式--观察者模式Observer
定义: 定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。实现: 见链接原创 2014-11-27 18:31:45 · 511 阅读 · 0 评论 -
设计模式--装饰者模式Decorator
定义: 动态的将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。装饰者和被装饰者(对象)有相同的基类,一个对象可以有多个装饰者,装饰者在被装饰者的行为之前与/或之后,加上自己的行为,对象可以在任何时候被装饰,运行时动态的不限的装饰者来装饰对象。UML图例子: 见链接ps OO原则 封装变化 : 在观原创 2014-12-01 19:37:54 · 510 阅读 · 0 评论 -
设计模式--单例模式Singleton
定义: 确保一个类只有一个实例,并提供一个全局的访问点。经典实现:public class Singleton{ private static Singleton INSTANCE ; private Singleton() {} public static Singleton getInstance(){ if(INSTANCE原创 2014-12-02 14:54:44 · 514 阅读 · 0 评论 -
设计模式--适配器模式Adapter
定义: 将一个类的接口,转换成客户期望的另一个接口,让原本接口不兼容的类可以合作无间。UML图:实现 OO原则 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 为交互对象之间的松耦合设计而努力 类应该对扩展开放,对修改关闭 依赖抽象,不依赖具体类原创 2014-12-25 19:06:55 · 389 阅读 · 0 评论 -
代理模式Proxy
1. 远程代理a. 远程接口:import java.rmi.Remote;import java.rmi.*;public interface MyRemote extends Remote { public String callStart(String from, String to, String content) throws RemoteException;}...原创 2018-07-20 17:14:31 · 207 阅读 · 0 评论