首页 / 设计模式 / 设计模式学习之代理模式
设计模式学习之代理模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了设计模式学习之代理模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2752字,纯文字阅读大概需要4分钟。
内容图文
考虑实现一个订单系统:
一旦订单被创建,只有订单的创建人才可以修改订单中的数据,其他人则不能修改。
三个属性:产品名称、订购数量、订购人
public interface OrderAPI { public String getProductionName() ;//得到产品名称 public void setProductionName(String productionName,String BuilderName) ;//设置<span style="font-family: Arial, Helvetica, sans-serif;">产品名称</span> public int getCount();//订购数量 public void setCount(int count,String BuilderName); public String getBuildName();//订购人 public void setBuildName(String buildName,String BuilderName); }
package com.cmc; public class Order implements OrderAPI{ private String productionName; private int count; private String buildName; public Order(String productionName, int count, String buildName) { super(); this.productionName = productionName; this.count = count; this.buildName = buildName; } public String getProductionName() { return productionName; } public void setProductionName(String productionName,String BuilderName) { this.productionName = productionName; } public int getCount() { return count; } public void setCount(int count,String BuilderName) { this.count = count; } public String getBuildName() { return buildName; } public void setBuildName(String buildName,String BuilderName) { this.buildName = buildName; } }
package com.cmc; public class OrderProdxy implements OrderAPI { Order order = null; public OrderProdxy(Order order) { super(); this.order = order; } public String getBuildName() { return order.getBuildName(); } public int getCount() { return order.getCount(); } public String getProductionName() { return order.getProductionName(); } public void setBuildName(String buildName, String BuilderName) { if(BuilderName!=null&&BuilderName.equals(order.getBuildName())){ order.setBuildName(buildName, order.getBuildName()); System.out.println("成功将订购人修改为"+buildName+"!"); } else System.out.println("不是订单创建人,无法修改订购人!"); } public void setCount(int count, String BuilderName) { if(BuilderName!=null&&BuilderName.equals(order.getBuildName())){ order.setCount(count, BuilderName); System.out.println("成功将订购数量修改为"+count+"!"); } else System.out.println("不是订单创建人,无法修改订单数量!"); } public void setProductionName(String productionName, String BuilderName) { // TODO Auto-generated method stub if(BuilderName!=null&&BuilderName.equals(order.getBuildName())){ order.setProductionName(productionName, BuilderName); System.out.println("成功将订购产品修改为"+productionName+"!"); } else System.out.println("不是订单创建人,无法修改产品名称!"); } }
客户端测试一下
package com.cmc; public class Client { public static void main(String[] args){ Order o = new Order("设计模式",100,"张三"); OrderProdxy o1 = new OrderProdxy(o); o1.setBuildName("王五", "李四"); o1.setBuildName("王五", "张三"); o1.setBuildName("李四", "王五"); } }
原文:http://blog.csdn.net/u014293306/article/details/45978779
内容总结
以上是互联网集市为您收集整理的设计模式学习之代理模式全部内容,希望文章能够帮你解决设计模式学习之代理模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。