![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
瀚澈
sss
展开
-
设计模式0-分类和原则
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两...转载 2017-09-25 17:13:22 · 213 阅读 · 0 评论 -
设计模式12-享元模式
简介享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候,可以减少对象从而减少内存的开销,通常与工厂模式一起使用。 适用于作共享的一些个对象,他们有一些共有的属性,就拿数据库连接池来说,url、driverClassName、username、password及dbname,这些属性对于每个连接来说都是一样的,所以就适合用享元模式来处理,建一个工厂类,将上述类似属性作为内部数据,转载 2017-09-27 14:18:58 · 153 阅读 · 0 评论 -
设计模式13-策略模式
简介行为模式: 策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。 实例统一接口public interface ICalculator { public int calculate(String exp); } 辅助类public abstract class AbstractCalculator { pu转载 2017-09-28 08:37:16 · 136 阅读 · 0 评论 -
设计模式14-模板方法
简介一个抽象类中,有一个主方法,再定义1…n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用 抽象父类public abstract class AbstractCalculator { /*主方法,实现对本类其它方法的调用*/ public final int calculate(String exp,S转载 2017-09-28 09:04:13 · 130 阅读 · 0 评论 -
设计模式15-观察者模式
简介当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化! MySubject类就是我们的主对象,Observer1和Observer2是依赖于MySubject的对象,当MySubject变化时,Observer1和Observer2必然变化。AbstractSubject类中定义着需要监控的对象列表,可以对其进行修改:增加或删除被监控对象,且当MySubject变化时,负责通知转载 2017-09-28 09:41:27 · 129 阅读 · 0 评论 -
设计模式16-迭代子模式
简介顺序访问聚集中的对象实现两个接口public interface Collection { public Iterator iterator(); /*取得集合元素*/ public Object get(int i); /*取得集合大小*/ public int size(); } public interface Iterator转载 2017-10-10 16:01:46 · 199 阅读 · 0 评论 -
设计模式17-责任链模式
简介有多个对象,每个对象持有对下一个对象的引用,请求在这条链上传递,直到某一对象决定处理该请求。public interface Handler { public void operator(); } public abstract class AbstractHandler { private Handler handler; public Handler g转载 2017-10-10 16:36:06 · 147 阅读 · 0 评论 -
设计模式18-命令模式
简介命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。实例public interface Command { public void exe(); }转载 2017-10-10 16:42:04 · 145 阅读 · 0 评论 -
设计模式19-备忘录模式
简介保存一个原始对象的某个状态,以便在适当的时候恢复原始对象的原始状态。实例原始类public class Original { private String value; public String getValue() { return value; } public void setValue(String value) {转载 2017-10-11 15:05:50 · 187 阅读 · 0 评论 -
设计模式20-状态模式
简介核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,状态模式就两点:1、可以通过改变状态来获得不同的行为。2、你的好友能同时看到你的变化。实例状态类public class State { private String value; public String g转载 2017-10-11 15:26:23 · 197 阅读 · 0 评论 -
设计模式11-组合模式
简介组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便 实例分支类public class TreeNode { private String name; private TreeNode parent; private Vector<TreeNode> children = new Vector<TreeNode>(); public T转载 2017-09-27 13:39:40 · 144 阅读 · 0 评论 -
设计模式10-桥接模式
简介桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化。 实例接口public interface Sourceable { public void method(); } 实现类1public class SourceSub1 implements Sourceable { @Override转载 2017-09-27 13:35:04 · 125 阅读 · 0 评论 -
设计模式1-工厂模式
简介建立一个工厂类,对实现了同一接口的一些类进行实例的创建。单方法工厂模式结构图多方法工厂模式结构图单方法工厂模式接口 public interface Sender { public void Send(); } 实现类mail public class MailSender implements Sender { @Overrid转载 2017-09-25 13:36:32 · 159 阅读 · 0 评论 -
设计模式2-抽象工厂
简介创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了结构例子接口 public interface Sender { public void Send(); } 实现类mail public class MailSender implements Sender { @Override publi转载 2017-09-25 14:18:03 · 124 阅读 · 0 评论 -
设计模式3-单例模式
简介单例对象能保证在一个JVM中,该对象只有一个实例存在常见单例 public class Singleton { /* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */ private static Singleton instance = null; /* 私有构造方法,防止被实例化 */转载 2017-09-25 15:27:51 · 146 阅读 · 0 评论 -
设计模式4-建造者模式
简介工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,建造者模式将很多功能集成到一个类里,这个类可以创造出比较复杂的东西。实例接口 public interface Sender { public void Send(); } 实现类mail public class MailSender implements Sender转载 2017-09-25 16:06:26 · 151 阅读 · 0 评论 -
设计模式5-原型模式
简介首先需要了解对象深、浅复制的概念:浅复制:将一个对象复制后,基本数据类型的变量都会重新创建,而引用类型,指向的还是原对象所指向的。 深复制:将一个对象复制后,不论是基本数据类型还有引用类型,都是重新创建的。简单来说,就是深复制进行了完全彻底的复制,而浅复制不彻底。深浅复制的例子: public class Prototype implements Cloneable, Serializa转载 2017-09-25 16:47:02 · 130 阅读 · 0 评论 -
设计模式6-适配器模式
简介适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。 类的适配器模式核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口时Targetable,通过Adapter类,将Source的功能扩展到Targetable里。 源代码Source类public class Source { public void meth转载 2017-09-26 09:21:46 · 143 阅读 · 0 评论 -
设计模式7-装饰模式
简介给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例 装饰接口Sourceable public interface Sourceable { public void method(); } 被装饰类Sourcepublic class Source implements Sourceable { @Ove转载 2017-09-26 09:49:07 · 118 阅读 · 0 评论 -
设计模式8-代理模式
简介代理模式就是多一个代理类出来,替原对象进行一些操作。 接口类public interface Sourceable { public void method(); } 源提供类public class Source implements Sourceable { @Override public void method() { Sys转载 2017-09-27 10:49:20 · 122 阅读 · 0 评论 -
设计模式9-外观模式
简介将类与类之家的依赖关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口 实现类1public class CPU { public void startup(){ System.out.println("cpu startup!"); } public void shutdown(){ System转载 2017-09-27 13:08:11 · 115 阅读 · 0 评论 -
设计模式21-访问者模式
简介分离对象数据结构与行为实例访问接口public interface Visitor { public void visit(Subject sub); } 访问实现类public class MyVisitor implements Visitor { @Override public void visit(Subject sub) {转载 2017-10-11 15:43:23 · 191 阅读 · 0 评论