![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
说天阔丶
这个作者很懒,什么都没留下…
展开
-
策略设计模式
[size=large]策略设计模式:[/size] 概念:定义了算法簇,分别封装起来,让他们之间可以相互替换。此模式让算法的变化独立于使用算法的客户。 个人理解:策略设计模式即是用接口+组合的方式分离实现。伪代码如下: [code="java"]public abstract class StrategyPatternDuck { ...原创 2017-03-03 17:49:03 · 63 阅读 · 0 评论 -
状态设计模式
状态设计模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。将动作委托到代表当前状态的类。行为会随着内部状态而改变。状态模式的类图和策略模式一模一样。但是两者的用法不同。使用状态设计模式会导致设计的类的数量会大大增加。一个不太恰当的代码实现:[code="java"]public class StateMain { //状态接口 State beginSta...原创 2017-03-14 10:34:36 · 64 阅读 · 0 评论 -
迭代器模式
迭代器模式:提供一种方法顺序访问一个聚合对象上的各个元素,而又不暴露其内部的表示。组合设计模式:允许你将对象组成树形结构来表现整体/部分的层次结构。组合能让客户以一致的方式处理个别对象和对象组合。组合模式内的任一对象为主见,实现相同的接口。[img]http://dl2.iteye.com/upload/attachment/0130/5920/0771a084-faa4-31ef...原创 2017-03-13 17:21:19 · 46 阅读 · 0 评论 -
模板方法模式
[size=medium]模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。[/size][code="java"]public abstract class Frame { //定义模板方法 abstract void method(); void method1(){ Sy...原创 2017-03-13 15:10:04 · 62 阅读 · 0 评论 -
适配器模式以及外观模式
[size=large]适配器模式:将一个类的接口,转换成客户期望的另一个类的接口。适配器让原本不兼容的类可以合作无间。[/size]利用对象组合,以修改的接口包装被适配者。[code="java"]public class EnumerationIterator implements Iterator{ Enumeration enumeration; public Enume...原创 2017-03-13 13:17:35 · 65 阅读 · 0 评论 -
命令设计模式
[size=large]命令设计模式:将请求封装成对象,这可以让你使用不同的请求、队列或者日志请求来参数化其他对象。命令模式也可以支持撤销操作。当需要将发出请求的对象和执行请求的对象解耦的时候使用命令模式。[/size]代码:[code="java"]//请求调用者public class CommandMain { Command command; pub...原创 2017-03-13 11:09:26 · 51 阅读 · 0 评论 -
单例设计模式
单例设计模式:确保一个类只有一个实例,并提供全局访问点。代码1:[code="java"]public class Singleton { //volatile修饰防止jvm指令重排引起错误 private volatile static Singleton singleton;; private Singleton(){ } public Singleto...原创 2017-03-10 17:46:46 · 62 阅读 · 0 评论 -
工厂模式
所有的工厂模式都是用来封装对象的创建。简单工厂设计模式:建立一个类专门用于对象的实例化。代码如下:[code="java"]public class SimpleFactory { public Product create(String s){ Product product; switch (s) { case "1": product ...原创 2017-03-10 10:46:38 · 53 阅读 · 0 评论 -
装饰着设计模式
[size=large]装饰者设计模式定义:动态的将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。[/size]装饰者特点: 1、装饰着和被装饰着具有相同的超类型。 2、通过构造函数注入被装饰对象。 3、装饰者可以在被装饰者方法调用的前后加入自己的行为。这有点类似于静态代理。实际上装饰者设计模式就是运用组合增...原创 2017-03-09 13:33:09 · 101 阅读 · 0 评论 -
观察者设计模式
[size=large]观察者设计模式定义:定义了对象之间的一对多依赖,这样一来当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。java伪代码实现如下:[/size][code="java"]import java.util.ArrayList;public class SubjectImpl implements Subject{//主题是一个接口用于绑定观察者,解绑观察...原创 2017-03-09 10:39:02 · 56 阅读 · 0 评论 -
设计模式概述
1、为什么会有设计模式?在软件开发中,唯有变是唯一的真理。唯有变是永远不变的。2、设计原则: 1、找出应用中可能变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。简单来讲即,分离变化。把可能变化的部分封装起来,好让其他部分不受到影响。 2、为了交互对象之间的松耦合设计而努力。 3、针对接口编程,不针对实现编程。...原创 2017-03-14 11:02:38 · 62 阅读 · 0 评论