设计思想与模式之四静态代理模式

一 概述

1.什么是代理模式?

为了隐藏与保护目标对象,为其他对象提供一个代理以控制对该目标对象的访问。

2.什么是静态代理模式?

代理模式有两种:

  • 静态代理:代理对象固定。
  • 动态代理:代理对象不固定。

二 静态代理模式

1.基本结构:

父类:可以是一个接口、抽象类、一般类,一般是接口,保证可以按照操作目标对象的方式操作代理对象。

目标类:实现了父类。

代理类:不仅拥有与目标相同的父类,而且包含目标类对象。

2.代理类包含目标对象的实现

代理模式的作用是隐藏与保护目标对象,因此目标对象不能由用户创建,而是在代理类内部创建,具体在代理类构造方法内创建,这样就隐藏了目标对象。

3.实现Demo

接口

package com.designmode.proxy.staticTest.demo02;

public interface ISomeService {

    String doSome(String message);

}

目标类

package com.designmode.proxy.staticTest.demo02;

public class SomeServiceImpl implements ISomeService {

    @Override
    public String doSome(String message) {
        // TODO Auto-generated method stub
        return message;
    }

}

代理类

package com.designmode.proxy.staticTest.demo02;

public class SomeServiceProxy implements ISomeService {

    private ISomeService service;

    public SomeServiceProxy() {
        super();
        service = new SomeServiceImpl();//在代理类构造方法内部创建目标对象
    }

    @Override
    public String doSome(String message) {
        return service.doSome(message).toUpperCase();
    }

}

测试类

package com.designmode.proxy.staticTest.demo02;

import org.junit.Test;

public class StaticProxyTest {

    @Test
    public void test01() {
        ISomeService proxy = new SomeServiceProxy();
        String result = proxy.doSome("abc");
        System.out.println("result=" + result);
    }

}
时间: 2024-08-07 20:59:22

设计思想与模式之四静态代理模式的相关文章

GOF23代理模式之静态代理模式理解之经典

 设计模式之代理模式之静态代理模式      代理模式(Proxy pattern)          核心作用:               通过代理,控制对对象的访问.                    可以通过详细控制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理.(即AOP的微观实现)               AOP(面向切面编程.Aspect Oriented Programming)的核心实现的机制          举个例子来理解这种模

JAVA笔记7__接口应用/Object类/简单工厂模式/静态代理模式/适配器模式

/** * 接口应用 */ public class Main { public static void main(String[] args) { Person p = new Person("fish7"); p.setIsay(new BeforeGong()); p.say(); p.setIsay(new AfterGong()); p.say(); } } class Person{ //只有在运行期才和say行为关联起来,这就叫面向接口编程 private String

Java代理模式——静态代理模式

一:代理模式 代理模式的作用是:为其他对象提供一种代理以控制这个对象的访问.在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 二:代理模式设计到的角色 抽象角色:声明真是对象和代理对象的共同接口(抽象类或接口). 代理角色:代理对象角色内部含有对真是对象的引用,从而可以操作真是对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能够代替真是对象.同时,代理对象可以在执行真实对象的操作时,附加其他操作,相当于对真是对象进行封装. 真实

跟王老师学反射(十):静态代理模式

跟王老师学反射(十):静态代理模式 主讲教师:王少华   QQ群号:483773664 学习内容 理解代理机制 掌握静态代理 一.代理模式的概念 代理模式就是指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理. 代理模式一般涉及到三个角色 抽象角色:声明真实对象和代理对象的共同接口 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能替代真实对象相同的接口以便在任何时刻都能替代真实对

JAVA学习--反射之静态代理模式

1 //静态代理模式 2 //接口 3 interface ClothFactory{ 4 void productCloth(); 5 } 6 //被代理类 7 class NikeClothFactory implements ClothFactory{ 8 9 @Override 10 public void productCloth() { 11 System.out.println("Nike工厂生产一批衣服"); 12 } 13 } 14 //代理类 15 class Pr

GOF23设计模式之静态代理模式实现之经典

 /**  * 抽象就角色,定义代理角色和真实角色的公共对外方法  * 时间:2015年4月4日18:45:00  * 在这个例子中,抽象角色起着规范代理角色和真实角色的作用.  * 其中具有方法,面谈,签合同收预付款,预订机票,唱歌,收尾款  */ package com.bjsxt.cn.proxy.staticProxy; public interface Star {  void confer();  void signContract();  void bookTicket();

代理模式(静态代理+动态代理)——JAVA

代理模式是常用的java设计模式,他的特征是代理类与目标类有同样的接口,代理类主要负责为目标类预处理消息.过滤消息.把消息转发给目标类,以及事后处理消息等.代理类与目标类之间通常会存在关联关系,一个代理类的对象与一个目标类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用目标类的对象的相关方法,来提供特定的服务. 结构图如下: 按照代理的创建时期,代理类可以分为静态代理和动态代理. 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译.在程序运行前,代理类(Proxy)的.clas

【设计模式】代理模式:静态代理,动态代理,spring aop

代理模式分为静态代理和动态代理.我们拿链家来举例子,我们本人是真实的对象,有真实的业务需求:需要去找房子:链家是中介,是代理类,他来帮我执行找房子的这个操作. 静态代理: 1.实现一个接口 public interface SearchHome { public void search(); } 2.构建实现接口的委托类 public class Master implements SearchHome { @Override public void search() { System.out.

设计模式 代理模式之静态代理

静态代理要搞清楚三个关系:客户类   代理类   委托类  代理类的行为要类似且强于委托类(实现方法有1.继承,2.代理类与委托类实现共同的接口(首选)) /** * 用静态代理模式完成日志的操作 * @author Administrator * */public class UserAction { private UserDao userDao = UserDaoFac.newUserDao(); public void add(){ System.out.println("=======