如果小A要结婚,那么他就需要做布置结婚现场,与新娘结婚,最后收拾现场。
如果使用静态代理模式解决思路:如果小A要结婚,可以找一个婚庆公司,婚庆公司的职责就是负责布置结婚现场,和最后的收拾现场,而小A就只要负责结婚。
从这两段话中,我们可以看出,小A和婚庆公司的目的都是为了结婚而做事情,那么在Java我们就一个把结婚这个事情定义成一个接口,小A和婚庆公司都有完成结婚这个事情。婚庆公司完成结婚现场布置,和最后收拾线程,而小A只负责和新娘结婚。
在静态代理中,有了接口,我们还需要一个真实角色和代理角色。结婚既然接口,那么小A固然就是一个真实角色,而婚庆公司就是一个代理角色,因为真正结婚的是小A,而完成结婚之外的事情,比如现场布置的是婚庆公司。也就是说代理角色是为真正角色服务的,所以,在代理角色中,我们需要有一个真正角色的引用。
那么我们首先创建一个接口
Static Proxy:
真实角色:小A
代理角色:婚庆公司
最后测试一下
执行结果: