- 浏览: 188618 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (321)
- eclipse (4)
- idea (2)
- Html (8)
- Css (14)
- Javascript (8)
- Jquery (6)
- Ajax Json (4)
- Bootstrap (0)
- EasyUI (0)
- Layui (0)
- 数据结构 (0)
- Java (46)
- DesPattern (24)
- Algorithm (2)
- Jdbc (8)
- Jsp servlet (13)
- Struts2 (17)
- Hibernate (11)
- Spring (5)
- S2SH (1)
- SpringMVC (4)
- SpringBoot (11)
- WebService CXF (4)
- Poi (2)
- JFreeChart (0)
- Shiro (6)
- Lucene (5)
- ElasticSearch (0)
- JMS ActiveMQ (3)
- HttpClient (5)
- Activiti (0)
- SpringCloud (11)
- Dubbo (6)
- Docker (0)
- MySQL (27)
- Oracle (18)
- Redis (5)
- Mybatis (11)
- SSM (1)
- CentOS (10)
- Ant (2)
- Maven (4)
- Log4j (7)
- XML (5)
最新评论
2. 结构型模式 (3) 代理模式
1. 代理模式
2. Java中代理模式
代理模式(Proxy Pattern)中,一个类代表另一个类的功能。创建具有现有对象的对象,以便向外界提供功能接口。 优点: 1. 职责清晰。 2. 高扩展性。 3. 智能化。 缺点: 1. 由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。 2. 实现代理模式需要额外的工作,有些代理模式的实现非常复杂。
1. 代理模式
package com.andrew.pattern0203.proxy.model01; public interface Image { void display(); }
package com.andrew.pattern0203.proxy.model01; public class RealImage implements Image { private String fileName; public RealImage(String fileName) { this.fileName = fileName; loadFromDisk(fileName); } @Override public void display() { System.out.println("Displaying:" + fileName); } private void loadFromDisk(String fileName) { System.out.println("Loading:" + fileName); } }
package com.andrew.pattern0203.proxy.model01; public class ProxyImage implements Image { private RealImage realImage; private String fileName; public ProxyImage(String fileName) { this.fileName = fileName; } @Override public void display() { if (null == realImage) { realImage = new RealImage(fileName); } realImage.display(); } }
package com.andrew.pattern0203.proxy.model01; /** * 1. 代理模式 * * @author andrew * @date 2018/07/01 */ public class Client { public static void main(String[] args) { Image image = new ProxyImage("test_img.jpg"); image.display(); System.out.println(""); image.display(); } } 运行结果: Loading:test_img.jpg Displaying:test_img.jpg Displaying:test_img.jpg
2. Java中代理模式
public abstract class Subject{ public abstract void request(); }
public class RealSubject extends Subject{ public void request(){ System.out.println("From real subject."); } }
public class ProxySubject extends Subject{ private RealSubject realSubject; //代理角色内部引用了真实角色 public void request(){ this.preRequest(); //在真实角色操作之前所附加的操作 if(null == realSubject){ realSubject = new RealSubject(); } realSubject.request(); //真实角色所完成的事情 this.postRequest(); //在真实角色操作之后所附加的操作 } private void preRequest(){ System.out.println("pre request"); } private void postRequest(){ System.out.println("post request"); } }
public class Client{ public static void main(String[] args){ Subject subject = new ProxySubject(); subject.request(); } } 运行结果: pre request From real subject. post request
发表评论
-
3. 行为型模式 (11) 解释器模式
2018-11-08 10:39 3943. 行为型模式 (11) 解释器模式 解释器模式(In ... -
3. 行为型模式 (10) 中介者模式
2018-11-08 09:56 3713. 行为型模式 (10) 中介者模式 中介者模式(Me ... -
3. 行为型模式 (9) 访问者模式
2018-11-07 14:30 3703. 行为型模式 (9) 访问者模式 访问者模式(Vis ... -
3. 行为型模式 (8) 状态模式
2018-11-07 09:13 4573. 行为型模式 (8) 状态模式 状态模式(State ... -
3. 行为型模式 (7) 备忘录模式
2018-11-06 14:27 4363. 行为型模式 (7) 备忘录模式 备忘录模式(Mem ... -
3. 行为型模式 (6) 命令模式
2018-11-06 11:40 3843. 行为型模式 (6) 命令模式 命令模式(Comma ... -
3. 行为型模式 (5) 责任链模式
2018-11-06 09:40 4363. 行为型模式 (5) 责任链模式 责任链模式(Cha ... -
3. 行为型模式 (4) 迭代子模式
2018-11-05 14:23 3533. 行为型模式 (4) 迭代 ... -
3. 行为型模式 (3) 观察者模式
2018-11-02 16:17 4483. 行为型模式 (3) 观察者模式 当对象间存在一对多 ... -
3. 行为型模式 (2) 模板方法模式
2018-11-02 09:26 4193. 行为型模式 (2) 模板方法模式 在模板模式(Te ... -
3. 行为型模式 (1) 策略模式
2018-11-01 09:23 4413. 行为型模式 (1) 策略模式 在策略模式(Stra ... -
2. 结构型模式 (7) 享元模式
2018-10-30 13:27 4142. 结构型模式 (7) 享元模式 享元模式(Flywe ... -
2. 结构型模式 (6) 组合模式
2018-10-30 09:50 3672. 结构型模式 (6) 组合模式 组合模式(Compo ... -
2. 结构型模式 (2) 装饰者模式
2018-10-29 09:30 4112. 结构型模式 (2) 装饰器模式 装饰器模式(Dec ... -
2. 结构型模式 (5) 桥接模式
2018-10-30 09:11 3962. 结构型模式 (5) 桥接模式 桥接(Bridge) ... -
2. 结构型模式 (4) 外观模式
2018-10-29 14:20 3522. 结构型模式 (4) 外观模式 外观模式(Fac ... -
2. 结构型模式 (1) 适配器模式
2018-10-26 15:35 3852. 结构型模式 (1) 适配器模式 将一个类的接口转换 ... -
1. 创建型模式 (2) 原型模式
2018-09-12 13:46 7451. 创建型模式 (2) 原型模式 用原型实例指定创建对 ... -
1. 创建型模式 (3) 建造者模式
2018-10-25 16:28 3731. 创建型模式 (3) 建造 ... -
1. 创建型模式 (1) 单例模式
2018-09-12 13:42 4311. 创建型模式 (3) 单例模式 单例模式是为确保一个 ...
相关推荐
代理模式是一种设计模式,属于结构型模式之一,其主要目的是为其他对象提供一个代理,以控制对该对象的访问。在实际应用中,代理模式能够帮助我们实现如下的功能: 1. 远程代理:代理对象可以代表一个位于远程系统...
2.结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略...
设计模式分为三大类:创建型模式、结构型模式和行为型模式。 **创建型模式**关注的是对象的创建。共有五种创建型模式: 1. **工厂方法模式**:它定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法...
本文将深入探讨其中的两种结构型模式:适配器模式和代理模式。 1. 适配器模式 适配器模式是一种将两个不兼容的接口进行转换的模式,使得原本无法协同工作的类能够一起工作。它主要分为类适配器模式和对象适配器...
结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite Pattern) 10. 外观模式(Facade Pattern) 11. 享元模式(Flyweight ...
代理模式是一种在面向对象设计中广泛应用的结构型设计模式,它提供了一种对目标对象进行间接访问的方式,使得客户端可以通过代理对象与真实对象进行交互,而无需直接接触真实对象。这样做的好处包括增加灵活性、控制...
JAVA-设计模式-结构型模式-代理模式
代理模式是一种设计模式,属于结构型模式的一种,它在软件设计中扮演着非常重要的角色。代理模式的主要目的是为其他对象提供一种代理以控制对这个对象的访问。在代理模式中,代理类作为真实对象的代表,它在客户端和...
这个“新版设计模式手册”深入浅出地介绍了设计模式的三大类:创建型模式、结构型模式和行为模式,为开发者提供了一套详细的设计说明。 一、创建型模式 创建型模式主要关注对象的创建过程,它们的目标是使得对象的...
本篇文章将重点讨论结构型模式中的几种关键类型:外观模式、代理模式、适配器模式以及桥接模式。 #### 二、结构型模式简介 结构型模式主要关注如何将类或对象组合成更大的结构。这类模式强调的是如何构建与组织类...
结构型模式是指在软件设计中,如何将类组合在一起去构成更大的结构的模式。它主要解决了类之间的组合问题,包括适配器、桥接、组合、装饰、外观、飞weight和代理等七种模式。 行为型模式是指在软件设计中,如何定义...
在本文中,我们将探讨几种结构型设计模式,包括适配器模式、桥接模式、外观模式、享元模式、代理模式和装饰器模式。 1. **适配器模式**: - 适配器模式用于连接两个不兼容的接口,使得原本不能一起工作的类可以...
结构型模式不仅限于适配器模式和桥接模式,还包括代理模式、装饰模式、外观模式、组合模式和享元模式等。这些模式都致力于优化系统结构,提升代码的可复用性和可维护性。 4. **学习与实践**: 对于初学者来说,理解...
9. **代理模式**:结构型模式,它为其他对象提供一种代理以控制对这个对象的访问。代理模式常用于远程代理、虚拟代理、安全代理以及智能引用等。 10. **外观模式**:也称为门面模式,结构型模式之一,提供了一个...
设计模式_结构型_代理模式
结构型模式是设计模式的一种分类,它关注如何组合类和对象,构建更大的结构。本篇主要讨论了七种结构型模式:Adapter、Bridge、Composite、Decorator、Façade、Flyweight和Proxy。 1. **Adapter模式**: - 适配器...
结构型模式可以分为七种:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。这些模式在不同的场景下有着各自的用途,它们可以帮助我们构建出灵活、可扩展的系统。 适配器模式允许两个不...
装饰器模式属于结构型模式,它允许在运行时动态地给一个对象添加新的职责或功能,而不必修改原有类的代码。装饰器模式通过包装(包裹)原始对象并实现相同的接口,可以在不改变对象本身的情况下增加其行为。这种...