设计模式
慕一春
这个作者很懒,什么都没留下…
展开
-
工厂模式
工厂模式分为:1)简单模式 2)抽象模式 3)...public class Main { public static void main(String[] args) throws Exception { Car car = CarFactory.createCar("BAOMA"); car.run(); }}class Ca原创 2015-11-20 15:01:15 · 491 阅读 · 1 评论 -
观察者模式
import java.util.Enumeration;import java.util.Vector;/** * * @author: muyichun * @date : 2016年3月23日15:07:32 * @function: 观察者模式 */public class Main{ public static void main(String[] args)原创 2016-03-23 16:40:21 · 377 阅读 · 0 评论 -
迭代子模式
迭代器模式就是顺序访问聚集中的对象,这个思路和我们常用的一模一样,MyCollection中定义了集合的一些操作,MyIterator中定义了一系列迭代操作。聚合对象,类似于手写集合。/** * * @author: muyichun * @date : 2016年3月23日16:47:03 * @function: 迭代子模式 */public class Main{原创 2016-03-23 17:02:37 · 448 阅读 · 0 评论 -
责任链模式
/** * * @author: muyichun * @date : 2016年3月23日17:24:38 * @function: 责任链模式 */public class Main{ public static void main(String[] args) { MyHandler h1 = new MyHandler("h1"); MyHandler h2原创 2016-03-23 17:26:33 · 422 阅读 · 0 评论 -
命令模式
Invoker是调用者(司令员),Receiver是被调用者(士兵),MyCommand是命令,实现了Command接口,持有接收对象!/** * @author: muyichun * @date : 2016年3月23日18:11:35 * @function: 命令模式 */public class Main{ public static void main(Strin原创 2016-03-23 18:36:27 · 504 阅读 · 0 评论 -
备忘录模式
Original类是原始类,里面有需要保存的属性value及创建一个备忘录类,用来保存value值。Memento类是备忘录类,Storage类是存储备忘录的类,持有Memento类的实例,该模式很好理解。/** * @author: muyichun * @date : 2016年3月23日18:35:52 * @function: 备忘录模式 */public class Ma原创 2016-03-23 18:38:37 · 404 阅读 · 0 评论 -
状态模式
核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,状态模式就两点:1、可以通过改变状态来获得不同的行为。2、你的好友能同时看到你的变化。/** * @author: muyichun * @date : 2016年3月23日18:59:40 * @function: 状态原创 2016-03-23 19:02:50 · 387 阅读 · 0 评论 -
访问者模式
该模式适用场景:如果我们想为一个现有的类增加新功能,不得不考虑几个事情:1、新功能会不会与现有功能出现兼容性问题?2、以后会不会再需要添加?3、如果类不允许修改代码怎么办?面对这些问题,最好的解决方法就是使用访问者模式,访问者模式适用于数据结构相对稳定的系统,把数据结构和算法解耦,/** * @author: muyichun * @date : 2016年3月23日18:59:40原创 2016-03-23 19:32:13 · 455 阅读 · 0 评论 -
中介者模式
中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改。如果使用中介者模式,只需关心和Mediator类的关系,具体类类之间的关系及调度交给Mediator就行,这有点像spring容器的作用!/** * @author: muyichun * @date : 2016年3月23日19:37:39原创 2016-03-23 20:11:10 · 471 阅读 · 0 评论 -
解释器模式
解释器模式用来做各种各样的解释器,如正则表达式等的解释器等等,在OOP的开发中,使用度比较窄!/** * @author: muyichun * @date : 2016年3月23日20:37:26 * @function: 解释器模式 */public class Main{ public static void main(String[] args) { int r原创 2016-03-23 20:39:46 · 471 阅读 · 0 评论 -
模板方法模式
一个抽象类中,有一个主方法,再定义1...n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用。/** * * @author: muyichun * @date : 2016年3月23日15:07:32 * @function: 模板方法模式 */public class Main{ public stat原创 2016-03-23 16:35:35 · 467 阅读 · 0 评论 -
策略模式
策略模式的决定权在用户,系统本身提供不同算法的实现,新增或者删除算法,对各种算法做封装。因此,策略模式多用在算法决策系统中,外部用户只需要决定用哪个算法即可。/** * * @author: muyichun * @date : 2016年3月23日14:38:59 * @function: 策略模式 */public class Main{ public static原创 2016-03-23 14:42:07 · 399 阅读 · 0 评论 -
享元模式
import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Vector;public class ConnectionPool { private Vectorpool = null; private String url = "原创 2016-03-23 11:36:37 · 431 阅读 · 0 评论 -
单例模式
单例模式实现方式最常见的有三种:1)懒汉式2)饿汉式3)双重锁式/** * 单例模式 */class Singleton{ private static Singleton instance; private Singleton(){}; public synchronized Singleton getInstance(){ if (null == insta原创 2015-11-20 14:54:43 · 395 阅读 · 0 评论 -
建造者模式
建造者模式 工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性!import java.util.ArrayList;import java.util.List;/** * * @author: muyichun * @date : 2016年3月22日10:49:47 * @fu原创 2016-03-22 14:54:59 · 409 阅读 · 0 评论 -
桥接模式
/** * * @author: muyichun * @date : 2016年3月23日10:06:26 * @function: 桥接模式 */public class Main{ public static void main(String[] args) { Bridge bridge = new MyBridge(); //调用第一个对象 Source原创 2016-03-23 10:08:26 · 441 阅读 · 0 评论 -
外观模式
/** * * @author: muyichun * @date : 2016年3月23日09:34:48 * @function: 外观模式 */public class Main{ public static void main(String[] args) { Computer computer = new Computer(); computer.start原创 2016-03-23 09:36:12 · 378 阅读 · 0 评论 -
代理模式
如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办法:1、修改原有的方法来适应。这样违反了“对扩展开放,对修改关闭”的原则。2、就是采用一个代理类调用原有的方法,且对产生的结果进行控制。这种方法就是代理模式。使用代理模式,可以将功能划分的更加清晰,有助于后期维护!/** * * @author: muyichun * @date : 2016年3月23日原创 2016-03-23 09:23:45 · 378 阅读 · 0 评论 -
装饰模式
装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例!/** * * @author: muyichun * @date : 2016年3月23日08:59:05 * @function: 装饰模式 */public class Main{ public static void main(String[原创 2016-03-23 09:00:55 · 402 阅读 · 0 评论 -
适配器模式
适配器模式分为三种:1.类的适配器模式2.对象的适配器模式3.接口的适配器模式/** * * @author: muyichun * @date : 2016年3月22日16:11:11 * @function: 适配器模式 */public class Main{ public static void main(String[] args) { A原创 2016-03-22 18:06:16 · 450 阅读 · 0 评论 -
原型模式
克隆、复制一个类,分为:浅克隆、深克隆。浅克隆:该类的成员对象的引用还是原来对象的引用。深克隆:该类是复制的全新的一个类。import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStre原创 2016-03-22 15:47:33 · 452 阅读 · 0 评论 -
组合模式
组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,将多个对象组合在一起进行操作,常用于表示树形结构中,例如二叉树,数等。import java.util.Enumeration;import java.util.Vector;/** * * @author: muyichun * @date : 2016年3月23日10:26:06 * @function:原创 2016-03-23 11:11:58 · 604 阅读 · 0 评论 -
readme——设计模式
一、设计模式的分类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。**还有两类:并发型模式和线程池模式原创 2016-03-24 08:51:55 · 607 阅读 · 0 评论