设计模式——代理模式

it2023-06-09  75

为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用,其特征是代理类与委托类有同样的接口。

/** * 抽象角色,实现需求 */ public interface ICoder { void implDemands(String demandName); }

 实现类 开发人员

/** * 开发人员 实现真正业务 */ public class JavaCoder implements ICoder{ private String name; public JavaCoder(String name){ this.name = name; } @Override public void implDemands(String demandName) { System.out.println(name + " implemented demand:" + demandName + " in JAVA!"); } } /** * 代理角色 */ public class CoderProxy implements ICoder{ private ICoder coder; public CoderProxy(ICoder coder){ this.coder = coder; } @Override public void implDemands(String demandName) { if(demandName.startsWith("Add")){ System.out.println("No longer receive 'Add' demand"); return; } coder.implDemands(demandName); } }

测试代码

public class Customer { public static void main(String args[]){ //定义一个java开发 ICoder coder = new JavaCoder("Zhang"); //定义一个代理角色 ICoder proxy = new CoderProxy(coder); //实现一个需求 proxy.implDemands("Add user manageMent"); } }

 

最新回复(0)