一:类图
代码实现
package Premission;
//抽象的权限所具有的功能
public interface AbstractPremission {
public void modifyUerInfo();//修改用户信息
public void viewNote();//查看帖子
public void publishNote();//发布新帖
public void modifyNote();//修改帖子
public void setLevel(int level);//设置权限
}
package Premission;
//具体的代理服务
public class PremissionProxy implements AbstractPremission{
private RealPremission realPremission=new RealPremission();
int level=0;
@Override
public void modifyUerInfo() {
if(level==1)
{
realPremission.modifyUerInfo();
}else if(level==0)
{
System.out.println("你没有修改的权限");
}
}
@Override
public void viewNote() {
System.out.println("查看帖子!!!");
}
@Override
public void publishNote() {
if(level==1)
{
realPremission.publishNote();
}else if(level==0)
{
System.out.println("你没有修改帖子的权限");
}
}
@Override
public void modifyNote() {
if(level==1)
{
realPremission.modifyNote();
}else if(level==0)
{
System.out.println("你没有修改的权限");
}
}
@Override
public void setLevel(int level) {
this.level=level;
}
}
package Premission;
//真是的服务
public class RealPremission implements AbstractPremission{
@Override
public void modifyUerInfo() {
System.out.println("修改用户信息!!!!");
}
@Override
public void viewNote() {
System.out.println("查看帖子");
}
@Override
public void publishNote() {
System.out.println("发布新帖!!!");
}
@Override
public void modifyNote() {
System.out.println("修改发帖的内容!!!");
}
@Override
public void setLevel(int level) {
}
}
package Premission;
/*
* 静态代理
*/
public class Client {
public static void main(String[] args) {
AbstractPremission premissionProxy=new PremissionProxy();
premissionProxy.setLevel(0);
premissionProxy.modifyNote();
premissionProxy.viewNote();
premissionProxy.publishNote();
premissionProxy.modifyUerInfo();
System.out.println("--------------------");
premissionProxy.setLevel(1);
premissionProxy.modifyNote();
premissionProxy.viewNote();
premissionProxy.publishNote();
premissionProxy.modifyUerInfo();
}
}
结果