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

简介: 静态代理模式很简单,代理类和实现类都实现相同的接口,然后通过代理类来调用实现类的方法。如我们想保存用户信息之前打印用户信息,或者保存用户信息之后把这些信息缓存下来,即在运行方法前后插入执行一个别的操作,下面是一个简单的示例。

静态代理模式很简单,代理类和实现类都实现相同的接口,然后通过代理类来调用实现类的方法。

如我们想保存用户信息之前打印用户信息,或者保存用户信息之后把这些信息缓存下来,即在运行方法前后插入执行一个别的操作,下面是一个简单的示例。

用户接口

public interfaceUserInterface{

boolean saveUser(User user);

}

用户接口实现

public classUserInterfaceImplimplements UserInterface {

@Override

public boolean saveUser(User user) {

System.out.println("保存用户: " + user.getName());

return true;

}

}

public classTest{

public static void main(String[] args) {

testStaticProxy();

}

private static voidtestStaticProxy() {

User user = new User();

user.setName("tom");

new StaticProxy(new UserInterfaceImpl()).saveUser(user);

}

static class StaticProxy implements UserInterface {

private UserInterface userInterface;

public StaticProxy(UserInterface userInterface) {

this.userInterface = userInterface;

}

@Override

public boolean saveUser(User user) {

System.out.println("静态代理-开始保存用户");

boolean result = userInterface.saveUser(user);

System.out.println("静态代理-保存用户结果: " + result);

System.out.println();

return result;

}

}

}

结果输出:

静态代理-开始保存用户

保存用户: tom

静态代理-保存用户结果: true

通过代码实战的方法学习设计模式,是不是觉得静态代理很简单了?

下面问题来了,如果我们想把用户接口内所有的方法都要代理,那我们所有的方法都要代理一遍,又或者之后又添加了新的方法,那又得重新写代理,十分麻烦,明天分享下动态代理的实现,解决了静态代理的不便扩展性。

相关文章
|
8天前
|
设计模式 前端开发 JavaScript
【JavaScript 技术专栏】JavaScript 设计模式与实战应用
【4月更文挑战第30天】本文探讨JavaScript设计模式在提升开发效率和代码质量中的关键作用。涵盖单例、工厂、观察者、装饰器和策略模式,并通过实例阐述其在全局状态管理、复杂对象创建、实时数据更新、功能扩展和算法切换的应用。理解并运用这些模式能帮助开发者应对复杂项目,提升前端开发能力。
|
2月前
|
设计模式 存储 uml
C++ 设计模式实战:外观模式和访问者模式的结合使用,派生类访问基类的私有子系统
C++ 设计模式实战:外观模式和访问者模式的结合使用,派生类访问基类的私有子系统
30 1
|
4月前
|
设计模式 C#
设计模式之代理模式(Proxy)
设计模式之代理模式(Proxy)
|
4月前
|
设计模式
设计模式-代理模式
设计模式-代理模式
|
4月前
|
设计模式 数据安全/隐私保护
设计模式之代理模式
设计模式之代理模式
|
2月前
|
设计模式 JavaScript Java
设计模式——代理模式
一文讲清楚设计模式中的代理模式
25 0
设计模式——代理模式
|
2月前
|
设计模式 Java 数据库连接
【重温设计模式】代理模式及其Java示例
【重温设计模式】代理模式及其Java示例
24 2
|
11天前
|
设计模式 算法 Java
Java 设计模式:探索策略模式的概念和实战应用
【4月更文挑战第27天】策略模式是一种行为设计模式,它允许在运行时选择算法的行为。在 Java 中,策略模式通过定义一系列的算法,并将每一个算法封装起来,并使它们可以互换,这样算法的变化不会影响到使用算法的客户。
19 1
|
14天前
|
设计模式 Go 网络安全
[设计模式 Go实现] 结构型~代理模式
[设计模式 Go实现] 结构型~代理模式
|
1月前
|
设计模式 缓存 Java
23种设计模式,代理模式的概念优缺点以及JAVA代码举例
4月更文挑战第7天】代理模式是一种常用的软件设计模式,它为其他对象提供一种代理以控制对这个对象的访问。这种模式创建具有原始对象相同接口的对象,从而使代理对象在访问者和目标对象之间作为一个中介。
15 0