设计模式
sshmobai
我心向阳,用力生长。只要朝着阳光的方向努力,生活就会变得简单而美好。
展开
-
建造者模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 使用场景: ● 相同的方法,不同的执行顺序,产生不同的事件结果时; ● 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时; ● 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能 ● 需要生成的对象...原创 2018-10-26 08:52:45 · 114 阅读 · 0 评论 -
观察者模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新 使用场景: ● Subject被观察者 定义被观察者必须实现的职责,它必须能够动态地增加、取消观察者。它一般是抽象类或者是实现类,仅仅完成作为被观察者必须实现的职责:管理观察者并通知观察者。 ● O...原创 2018-10-29 08:31:38 · 106 阅读 · 0 评论 -
门面模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用 使用场景: ● 为一个复杂的模块或子系统提供一个供外界访问的接口 ● 子系统相对独立——外界对子系统的访问只要黑箱操作即可 ● 预防低水平人员带来的风险扩散 注意: ●一个子系统可以有...原创 2018-10-29 08:31:48 · 85 阅读 · 0 评论 -
备忘录模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态 使用场景: ● 需要保存和恢复数据的相关状态场景。 ● 提供一个可回滚(rollback)的操作。 ● 需要监控的副本场景中。 ● 数据库连接的事务管理就是用的备忘录模式。 注意:...原创 2018-10-29 08:32:02 · 101 阅读 · 0 评论 -
访问者模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作 使用场景: ● 一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对象实施一些依赖于其具体类的操作,也就说是用迭代器模式已经不能胜任的情景。 ● 需要对一个对象结构中的对象进行很多不同并且不相...原创 2018-10-29 08:32:11 · 80 阅读 · 0 评论 -
状态模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类 使用场景: ● 行为随状态改变而改变的场景 这也是状态模式的根本出发点,例如权限设计,人员的状态不同即使执行相同的行为结果也会不同,在这种情况下需要考虑使用状态模式。 ● 条件、分支判断语句的替代者 public abstra...原创 2018-10-29 08:32:21 · 78 阅读 · 0 评论 -
单例模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点 使用场景: ● 要求生成唯一序列号的环境; ● 在整个项目中需要一个共享访问点或共享数据,例如一个Web页面上的计数器,可以不用把每次刷新都记录到数据库中,使用单例模式保持计数器的值,并确保是线程安全的; ● 创建一个对象需要消耗的资源过多,如要访...原创 2018-10-24 15:32:50 · 72 阅读 · 0 评论 -
工厂模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类 使用场景: ● 日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方; ● 数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时; ● 设计一个连接服务...原创 2018-10-24 15:51:48 · 110 阅读 · 0 评论 -
抽象工厂模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类 使用场景: ● QQ 换皮肤,一整套一起换; ● 生成不同操作系统的程序 public class User { private int id; private String name; public int get...原创 2018-10-24 16:11:01 · 104 阅读 · 0 评论 -
组合模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性 使用场景: ● Component抽象构件角色 定义参加组合对象的共有方法和属性,可以定义一些默认的行为或属性,比如我们例子中的getInfo就封装到了抽象类中。 ● Leaf叶子构件 叶子对象,其下再...原创 2018-10-29 08:31:09 · 83 阅读 · 0 评论 -
迭代器模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节 使用场景: ● 访问一个聚合对象的内容而无须暴露它的内部表示; ● 需要为聚合对象提供多种遍历方式; ● 为遍历不同的聚合结构提供一个统一的接口 注意事项:迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既...原创 2018-10-26 10:07:30 · 130 阅读 · 0 评论 -
代理模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:为其他对象提供一种代理以控制对这个对象的访问 使用场景: ● 远程代理; ● 虚拟代理; ● Copy-on-Write 代理; ● 保护(Protect or Access)代理; ● Cache代理; ● 防火墙(Firewall)代理; ● 同步化(Synchronization)代理;...原创 2018-10-26 09:03:23 · 101 阅读 · 0 评论 -
原型模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象(实际上就是实现Cloneable接口,重写clone()方法) 使用场景: ● 资源优化场景 类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等。 ● 性能和安全要求的场景 通过new产生一个对象需要非常繁琐的数据准备或访问权限...原创 2018-10-26 09:17:22 · 128 阅读 · 0 评论 -
中介者模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互 使用场景: ● 系统中对象之间存在比较复杂的引用关系,导致它们之间的依赖关系结构混乱而且难以复用该对象; ● 想通过一个中间类来封装多个类中的行为,而又不想生成太多的子类; ● ...原创 2018-10-26 09:24:40 · 125 阅读 · 0 评论 -
命令模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能 使用场景:(认为是命令的地方就可以采用命令模式) ● 在GUI开发中,一个按钮的点击是一个命令; ● 模拟DOS命令的时候; ● 触发-反馈机制的处理 public cla...原创 2018-10-26 09:32:49 · 85 阅读 · 0 评论 -
责任链模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止 使用场景: ● 有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时刻自动确定; ● 在不明确指定接收者的情况下,向多个对象中的一个提交一个请求; ● ...原创 2018-10-26 09:39:46 · 108 阅读 · 0 评论 -
装饰模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活 使用场景: ● 需要扩展一个类的功能,或给一个类增加附加功能; ● 需要动态地给一个对象增加功能,这些功能可以再动态地撤销; ● 需要为一批的兄弟类进行改装或加装功能,当然是首选装饰模式 public abstr...原创 2018-10-26 09:47:48 · 92 阅读 · 0 评论 -
策略模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换 使用场景: ● 多个类只有在算法或行为上稍有不同的场景; ● 算法需要自由切换的场景; ● 需要屏蔽算法规则的场景 public abstract class Strategy { /** * 算法方法 */ publi...原创 2018-10-26 09:56:08 · 96 阅读 · 0 评论 -
适配器模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 使用场景: ● 有动机地修改一个正常运行的系统的接口,这时应该考虑使用适配器模式 public class Target { public void request() { Syste...原创 2018-10-26 10:01:48 · 84 阅读 · 0 评论 -
模板方法模式
文档查阅说明: Tongkey yiibai runoob 大话设计模式 定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 使用场景: ● 有多个子类共有的方法,且逻辑相同; ● 重要的、复杂的方法,可以考虑作为模板方法 注意事项:为防止恶意操作,一般模板方法都加上 final 关键词 pub...原创 2018-10-24 17:19:04 · 97 阅读 · 0 评论