设计模式
最基本的设计模式,由设计模式之禅整理而成
WS-611
好人
展开
-
原型模式
原型模式:* 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。* 优点:* 1、性能优良* 原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式 可以更好地体现其优点。* 2、逃避构造函数的约束* 这既是它的优点也是缺点,直接在内存中拷贝,构造函数是不会执行的** 使用场景:* 1...原创 2018-11-12 20:19:24 · 131 阅读 · 0 评论 -
监听者模式
// 执行者接口interface Subject { public String doSomething(int state);}class ConcreteSubject{ private Subject subject; public void setSubject(Subject subject) { this.subject = subject; } pub...原创 2018-11-12 20:18:31 · 149 阅读 · 0 评论 -
模板模式
模板模式:* 优点:* 1、封装不变部分,扩展可变部分* 2、提取公共部分,便于维护* 3、行为由父类控制,子类实现** 缺点:* 一般设计习惯,抽象类负责声明最抽象、最一般的事物的属性和方法,实现类完成具体的事物属性和方法。但是模板模式却颠倒* 了过来,抽象类定义了部分抽象方法,由子类来实现,子类执行的结果影响了父类的结果,也就是子类对父类产生了影响,这在* ...原创 2018-11-12 20:17:22 · 101 阅读 · 0 评论 -
建造者模式
建造者模式* @author Administrator* 优点:* 1、封装性* 2、建造者独立,容易扩展* 3、便于控制细节风险** 适用场景:* 1、相同方法,不同的执行顺序,产生不同的事件结果时* 2、多个部件或者零件,都可以转配到一个对象中,但是生产出来的运行结果又不相同时* 3、产品非常复杂,或者产品类中的调用顺序不同产生了不同的效能* 4、...原创 2018-11-08 21:14:42 · 105 阅读 · 0 评论 -
单例模式
单例模式* @author Administrator*饿汉*优点:* 1、由于单例模式在内存中只有一个实例,减少了内存的开支,特别是一个对象需要频繁地创建、销毁时,而且创建或者销毁时的性能又无法优化* 2、单例模式减少对资源的多重占用* 3、优化共享资源**缺点:* 1、单例模式一般没有接口,扩展困难* 2、单例对测试不利。在并行开发环境中,如果单例没...原创 2018-11-08 21:13:50 · 97 阅读 · 0 评论 -
适配器模式
适配器模式* @author Administrator*优点:* 1、适配器模式可以让两个没有任何关系的类在一起运行,只要适配器这个角色能够搞定他们就行* 2、增加了类的透明性* 3、提高了类的复用度* 4、灵活性非常好*使用场景:* 你有动机修改一个已经投产中的接口时,适配器模式可能是最适合你的模式。比如:系统扩展了,需要使用一个* 已有的或者新建立的类,但...原创 2018-11-08 21:12:58 · 106 阅读 · 0 评论 -
代理者模式
* 动态代理** @author Administrator* 动态代理的主要意图就是解决审计问题,也就是横切面编程,在不改变我们已有代码结构的情况下增强或控制对象的行为。* 动态代理实现代理的职责,业务逻辑Subject实现相关的逻辑功能,两者之间没有必然的相互耦合关系。* 通知从另一个切面切入,最终在高层模块也就是Client进行耦合 完成逻辑封装任务。* 要实现动态代...原创 2018-11-08 21:11:52 · 125 阅读 · 0 评论 -
装饰者模式
装饰者模式: 优点:1、装饰类和被装饰类可以独立发展,而不会互相耦合。2、装饰模式是继承关系的一个替代方案3、装饰模式可以动态地扩展一个实现类的功能 缺点: 对于装饰者模式多层的装饰是比较复杂的 使用场景:1、需要扩展一个类的功能,或者给一个类增加附加的功能2、需要动态地给一个对象增加功能,这些功能可以再动态地撤销3、需要为一批兄弟类进行改装或加装功...原创 2018-11-08 21:10:37 · 143 阅读 · 0 评论 -
工厂模式
简单工厂模式有如下缺点,而工厂方法模式可以解决这些问题:由于工厂类集中了所有实例的创建逻辑,这就直接导致一旦这个工厂出了问题,所有的客户端都会受到牵连。 由于简单工厂模式的产品是基于一个共同的抽象类或者接口,这样一来,产品的种类增加的时候,即有不同的产品接口或者抽象类的时候,工厂类就需要判断何时创建何种接口的产品,这就和创建何种种类的产品相互混淆在了一起,违背了单一职责原则,导致系统丧失灵活...原创 2018-11-08 21:09:41 · 117 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式优点 因为每个具体工厂类只负责创建产品,没有简单工厂中的逻辑判断,因此符合单一职责原则。 与简单工厂模式不同,抽象工厂并不使用静态工厂方法,可以形成基于继承的等级结构。 新增一个产品族(如上文类图中的MySQLUserDao,MySQLRoleDao,MySQLProductDao)时,只需要增加相应的具体产品和对应的具体工厂类即可。相比于简单工厂模式需要修改判断逻辑而言,...原创 2018-11-08 21:08:35 · 148 阅读 · 0 评论 -
观察者模式
观察者模式的优点:* 1、观察者和被观察者之间是抽象耦合* 2、建立一套触发机制(形成了一个触发链,观察者模式可以完美地实现这里的链条形式。)** 观察者模式的缺点:* 1、观察者模式需要考虑一下开发效率和运行效率问题,一个被观察者,多个观察者,开发和调试就会比较复杂,而且在Java中消息的通知默认是顺序执行,一个观察者卡壳,* 会影响整体的执行效率。在这种情况下,一般考虑...原创 2018-11-08 21:07:16 · 117 阅读 · 0 评论 -
观察者模式(Java自带实现类)
观察者模式的优点:* 1、观察者和被观察者之间是抽象耦合* 2、建立一套触发机制(形成了一个触发链,观察者模式可以完美地实现这里的链条形式。)*观察者模式的缺点:* 1、观察者模式需要考虑一下开发效率和运行效率问题,一个被观察者,多个观察者,开发和调试就会比较复杂,而且在Java中消息* 的通知默认是 顺序执行,一个观察者卡壳, 会影响整体的执行效率。在这种情况下,一般考虑...原创 2018-11-08 21:06:18 · 243 阅读 · 0 评论 -
责任链模式
责任链模式:* 使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求, 直到有* 对象处理它为止。* 重点:* 重点是在“链”上,有一条链去处理相似的请求在链中决定谁去处理这个请求,并返回相应的结果。链是由多个处理者组成的。* 抽象的处理者必须实现三个职责:* 1、定义一个请求的处理方法HandlerMess...原创 2018-11-08 21:04:34 · 91 阅读 · 0 评论