当前位置: 首页 > wzjs >正文

网站建设公司首选华网天下seo推广技巧

网站建设公司首选华网天下,seo推广技巧,哪里找做网站客户,动态网页设计学什么概念 代理模式是一种结构型设计模式,它允许通过代理对象来控制对另一个对象(即目标对象)的访问。 代码案例 public interface FactoryUser {User creatUser(String name, String ID); }public class AdminFactory implements FactoryUser …

概念

代理模式是一种结构型设计模式,它允许通过代理对象来控制对另一个对象(即目标对象)的访问。

代码案例

public interface FactoryUser {User creatUser(String name, String ID);
}
public class AdminFactory implements FactoryUser {@Overridepublic User creatUser(String name, String ID) {return new AdminUser(name,ID);}
}
public class NormalFactory implements FactoryUser {@Overridepublic User creatUser(String name, String ID) {return new NormalUser(name, ID);}
}
public abstract class User {String name;String ID;public User(String name, String ID) {this.name = name;this.ID = ID;}public abstract void menu();
}
public class AdminUser extends User{public AdminUser(String name, String ID) {super(name, ID);}@Overridepublic void menu() {System.out.println("打开管理员菜单");}public void addBook(String bookname) {System.out.println(this.name+",您添加成功"+bookname);}
}
public class NormalUser extends User{public NormalUser(String name, String ID) {super(name, ID);}@Overridepublic void menu() {System.out.println("打开普通用户菜单");}public void borrowBook() {System.out.println(this.name+"借阅图书");}
}
public class ProxyUser {private User proxyuser;public ProxyUser(User proxyuser) {this.proxyuser = proxyuser;}public void proxymenu() {this.proxyuser.menu();}public void addBook(String bookname) {System.out.println(this.proxyuser.name+"开始检查权限:");if(proxyuser instanceof AdminUser) {((AdminUser) proxyuser).addBook(bookname);}else System.out.println(this.proxyuser.name+",您没有权限上架书籍");}
}
public class Test {public static void main(String[] args) {AdminFactory adminFactory = new AdminFactory();User zhangsan = adminFactory.creatUser("zhangsan", "223");NormalFactory normalFactory = new NormalFactory();User lisi = normalFactory.creatUser("lisi", "221");User wangwu = normalFactory.creatUser("wangwu", "222");zhangsan.menu();ProxyUser proxyAdminUser = new ProxyUser(zhangsan);proxyAdminUser.addBook("水浒传");wangwu.menu();ProxyUser proxyNormalUser = new ProxyUser(lisi);proxyNormalUser.addBook("西游记");}
}

输出:
打开管理员菜单
zhangsan开始检查权限:
zhangsan,您添加成功水浒传
打开普通用户菜单
lisi开始检查权限:
lisi,您没有权限上架书籍

代码解释:

1、上述代码也用到了工厂模式。定义了一个抽象工厂接口FactoryAdminFactoryNormalFactory实现了这接口,可以创建多个对象。
2、定义了一个用户类(父类),里面有抽象方法menu()和构造方法。
3、AdminUserNormalUser都继承了抽象类User,重写了menu()方法,并且实现了属于自己的方法。
4、定义了一个代理类,里面定义成员属性private User proxyuser;(用User做类型是为了可以发生向下转型)。定义一个构造方法,传入需要代理的对象。此时,代理类的成员属性指向这个对象。
5、调用proxymenu()方法,来调用对象自己的menu()方法。
6、在addBook()方法中,检查类型是否匹配,只有AdminUser才能调用此方法,使用instanceof关键字进行判断。
7、代理类作用:一是作为被代理 User 对象方法调用的中转站,如 proxymenu 方法;二是在特定方法(如 addBook 方法)调用前进行权限检查,实现对被代理对象功能的控制和扩展,增强了系统的安全性和访问控制能力 。

http://www.dtcms.com/wzjs/233183.html

相关文章:

  • 海口做网站的公司关联词有哪些关系
  • 电子商务企业网站建设规划方案sem和seo区别与联系
  • 个人备案可以做盈利网站吗自己怎么做百度推广
  • 福州网站建设新闻怎么建自己的网站?
  • 中国百强企业免费网站优化排名
  • 从化定制型网站建设十大技能培训机构排名
  • 做网站可以用.cn域名吗如何自己免费制作网站
  • 平面设计是干什么的工资一般多少快手seo关键词优化
  • 炒币做合约哪个网站最好微信朋友圈广告推广
  • 自助建站软件公司友情链接属于免费推广吗
  • 展会展台搭建服务seo关键词优化公司
  • 河南建设seo工程师
  • 爬虫做网站相关教程app香港账号
  • 销售新网站推广策略新媒体营销案例ppt
  • 上海网站建设做物流一网络营销企业网站推广
  • 淘宝有做钓鱼网站的吗做关键词优化的公司
  • 怎样做汽车之家视频网站网上推广产品哪个网好
  • 济南住房和城乡建设局网站公司宣传软文
  • 大型网站服务器架构威海seo
  • 史上最全设计网站seo刷词工具在线
  • 郑州餐饮网站建设公司排名模板下载网站
  • 专门做衣服的网站有哪些微信推广方案
  • 网站设计书怎么写最近三天的国内新闻
  • 网页升级紧急通知写作全网搜索引擎优化
  • 网站首页动图怎么做搜索seo
  • dede 网站地图怎么做app推广接单
  • 战鼓的h5网站如何做如何建立网站平台
  • 武汉企业网站建设公司排名武汉网络关键词排名
  • pbootcms教程惠州seo网站排名
  • 建设一个网站需要哪些员工网站建设的基本