`

静态代理模式Demo

 
阅读更多
package com.xcl.proxy;

//抽象主题角色
abstract class SaleComputer {
	abstract public void saleComputer();
}

//真实的主题角色(ComputerMaker) 
//必须继承抽象主题角色
class ComputerMaker extends SaleComputer {

	@Override
	public void saleComputer() {
		System.out.println("卖出了一台电脑 ....");
	}
	
}


//代理的主题角色(ComputerProxy)
//必须继承抽象主题角色
class ComputerProxy extends SaleComputer {

	//必须含有对真实主题的引用
	ComputerMaker cm = null;
	
	//前置通知
	public void beforAdvice() {
		System.out.println("你买我电脑,我给你85折优惠!!!");
		System.out.println("还送你一个无线鼠标!!");
	}
	
	@Override
	public void saleComputer() {
		//前置通知
		beforAdvice();
		if (cm == null) {
			cm = new ComputerMaker();
		}
		cm.saleComputer();
		//后置通知
		afterAdvice();
	}
	
	//后置通知
	public void afterAdvice() {
		System.out.println("2个月内免费包换,2年内免费包维修,5年内电话上门服务!!!");
	}
}

public class ProxyDemo {
	
	public static void main(String[] args) {
		SaleComputer sc = new ComputerProxy();
		sc.saleComputer();
	}
}

分享到:
评论

相关推荐

    包含静态代理和动态代理demo代码

    以下是一个简单的静态代理模式的步骤: 1. 定义一个接口,如`Service`,其中声明了需要被代理的方法。 2. 创建真实类(Target)实现`Service`接口,实现具体业务逻辑。 3. 创建代理类(Proxy)同样实现`Service`...

    设计模式之代理模式demo

    代理模式有多种实现方式,包括静态代理和动态代理。静态代理是在编译时就确定了代理关系,而动态代理则可以在运行时动态生成代理类,如Java的`java.lang.reflect.Proxy`类和.NET的`System.Reflection.Emit`命名空间...

    Java静态代理与动态代理demo

    Java提供了两种实现代理模式的方式:静态代理和动态代理。 **静态代理** 静态代理是在编译时就已经确定了代理类,通过继承或实现目标接口来创建代理类。以下是一个简单的静态代理实现示例: ```java // 目标接口 ...

    Java中的代理模式Demo

    1. 静态代理:静态代理是通过程序员手动创建一个代理类,这个代理类实现了与目标类相同的接口,然后在代理类的方法中调用目标类的相应方法。这种方式的优点是代码清晰,缺点是如果目标类接口增加,代理类也需要相应...

    代理模式Demo

    在这个“代理模式Demo”中,我们将深入探讨代理模式的概念、作用以及如何通过代码实现。 1. **代理模式的基本概念** 代理模式属于结构型设计模式,它创建了一个代理对象来控制对原对象的访问。代理对象与目标对象...

    静态代理和动态代理Demo

    静态代理和动态代理是两种常见的代理模式,它们在Java中有着广泛的应用,特别是在SpringBoot等框架中。本资源提供了一个简单的Java实现,适用于JDK1.8版本,并经过了验证,对初学者理解设计模式具有指导意义。 静态...

    静态代理与动态代理Demo

    代理模式分为静态代理和动态代理两种主要形式,每种都有其特定的应用场景和优势。下面我们将深入探讨这两种代理模式,并通过一个“黄牛买票”的例子来具体说明。 首先,我们来看静态代理。静态代理是程序员在编译时...

    代理模式_静态代理.zip

    设计模式之代理模式_静态代理的一个java实现的demo。主类在Client中。仅代码实现,可供初学者参考使用

    静态代理demo

    在Java等面向对象语言中,静态代理是一种实现代理模式的方式。在这个"静态代理demo"中,我们将深入探讨静态代理的工作原理、实现方式以及它的优缺点。 静态代理的核心思想是通过创建一个代理类,该类实现与原始目标...

    动态代理和静态代理demo

    代理模式通常分为静态代理和动态代理两种实现方式,这里我们将详细探讨这两种代理模式,并通过一个简单的Java示例进行演示。 ### 静态代理 静态代理是最基础的代理形式,它的实现主要依靠继承或接口实现。在静态...

    23种设计模式Demo

    下面将详细探讨23种经典设计模式中的部分,并结合提供的"23种设计模式Demo"来阐述它们的核心概念。 1. **单例模式(Singleton)**:确保一个类只有一个实例,并提供全局访问点。在多线程环境下,正确实现单例需要...

    简单工厂,代理模式,单例模式demo

    在众多设计模式中,“简单工厂”、“代理模式”和“单例模式”是三种常见的设计模式,它们各自有着明确的使用场景和设计目标。 首先,“简单工厂模式”是一种创建型模式,它定义了一个创建对象的接口,但让决定创建...

    ios-(单例)简单的夜间模式Demo.zip

    在这个“ios-(单例)简单的夜间模式Demo”中,开发者创建了一个单例类来实现夜间模式的功能,这非常适合初学者学习和理解单例模式的应用。 单例模式的主要目的是控制类的实例化过程,确保在整个程序生命周期内只有一...

    proxy-demo.zip

    通过分析这个"proxy-demo.zip",我们可以深入理解代理模式的工作原理,学习如何在实际项目中应用静态代理和动态代理,以实现更灵活、可扩展的代码结构。对于学习和提升面向对象设计能力来说,这是一个非常有价值的...

    代理demo的实现

    在这个"代理demo的实现"中,我们将探讨如何在实际编程中运用代理模式。 代理通常分为静态代理和动态代理。静态代理是在编译时就已经确定了代理对象与真实对象的关系,通常通过定义接口并实现两个类(一个是真实对象...

    C# 设计模式 DEMO(供学习参考)

    11. **代理模式**:为其他对象提供一种代理以控制对这个对象的访问。C#中的远程代理、虚拟代理和智能指针都是代理模式的体现。 12. **策略模式**:定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换。...

    Java 各种设计模式的Demo

    1. 代理模式:为其他对象提供一种代理以控制对这个对象的访问,常用于远程代理、虚拟代理等场景。 2. 外观模式:为子系统提供一个统一的接口,使得子系统更易于使用。 3. 桥接模式:将抽象部分与实现部分分离,使...

    C#设计模式DEMO

    以上只是C#设计模式中的一小部分,还有许多其他模式,如代理模式、适配器模式、建造者模式、策略模式等,每个都有其独特的价值和适用场景。通过理解和应用这些设计模式,开发者可以写出更高效、更易于维护的代码。在...

    java jdk 动态代理 演示demo

    在静态代理中,我们通过编写额外的代理类来实现这一目标,但在动态代理中,代理类是在运行时生成的,无需预先编写代码。 Java JDK提供了`java.lang.reflect.Proxy`类和`java.lang.reflect.InvocationHandler`接口,...

    Java设计模式demo

    5. 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。这在需要添加额外功能或者需要在调用真实对象前/后执行某些操作时非常有用。 6. 结构型模式: - 适配器模式(Adapter Pattern):...

Global site tag (gtag.js) - Google Analytics