代理模式-静态代理Demo

来源:互联网 发布:window python编译器 编辑:程序博客网 时间:2024/06/06 07:41

1.说明:借用歌星与经济人(代理)在现实生活中的关系来阐述代理模式;

2.代码

2.1明星接口

public interface Star{void confer();void signContract();void bookTicket();void sing();void collectMoney();}
2.2真实明星实现明星接口

package 代理模式1.静态代理;public class RealStar implements Star {@Overridepublic void confer() {// TODO Auto-generated method stubSystem.out.println("RealStar.confer()");}@Overridepublic void signContract() {// TODO Auto-generated method stubSystem.out.println("RealStar.signContract()");}@Overridepublic void bookTicket() {// TODO Auto-generated method stubSystem.out.println("RealStar.bookTicket()");}@Overridepublic void sing() {System.out.println("RealStar(周杰伦).sing()");}@Overridepublic void collectMoney() {// TODO Auto-generated method stubSystem.out.println("RealStar.collectMoney()");}}

2.3代理人类

package 代理模式1.静态代理;public class ProxyStar implements Star{private Star star; public ProxyStar(Star real){this.star = real;}@Overridepublic void confer() {// TODO Auto-generated method stubSystem.out.println("ProxyStar.confer()");}@Overridepublic void signContract() {// TODO Auto-generated method stubSystem.out.println("ProxyStar.singContract()");}@Overridepublic void bookTicket() {// TODO Auto-generated method stubSystem.out.println("ProxyStar.bookTicket()");}@Overridepublic void sing() {// TODO Auto-generated method stubstar.sing();}@Overridepublic void collectMoney() {// TODO Auto-generated method stubSystem.out.println("ProxyStar.collectMoney()");}}
2.4Client类中进行测试

package 代理模式1.静态代理;public class Client {public static void main(String[] args) {Star real = new RealStar();Star proxy = new ProxyStar(real);proxy.bookTicket();proxy.collectMoney();proxy.sing();}}

3.输出结果:

ProxyStar.bookTicket()
ProxyStar.collectMoney()
RealStar(周杰伦).sing()

原创粉丝点击