zoukankan      html  css  js  c++  java
  • 设计模式之三静态代理模式

    一 概述

    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);
        }
    
    }

      

  • 相关阅读:
    leetcode 29-> Divide Two Integers without using multiplication, division and mod operator
    ros topic 发布一次可能会接收不到数据
    python中的print()、str()和repr()的区别
    python 部分函数
    uiautomatorviewer错误 unable toconnect to adb
    pyqt 不规则形状窗口显示
    appium 计算器demo
    Spring 3.0 注解注入详解
    Spring Autowire自动装配
    restful 学习地址
  • 原文地址:https://www.cnblogs.com/tonghun/p/6925614.html
Copyright © 2011-2022 走看看