设计模式之静态代理模式实战
发布日期:2021-07-01 01:30:52 浏览次数:2 分类:技术文章

本文共 1159 字,大约阅读时间需要 3 分钟。

转载自

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


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


用户接口

public interface UserInterface {

    boolean saveUser(User user);

}


用户接口实现

public class UserInterfaceImpl implements UserInterface {

    @Override

    public boolean saveUser(User user) {

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

        return true;

    }

}


public class Test {



    public static void main(String[] args) {

        testStaticProxy();

    }


    private static void testStaticProxy() {

        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


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


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

转载地址:https://maokun.blog.csdn.net/article/details/80178791 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:作为架构师,你必需要搞清楚的概念:POJO、PO、DTO、DAO、BO、VO
下一篇:设计模式之动态代理模式实战

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月30日 14时55分09秒