前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >代理模式实例订单系统

代理模式实例订单系统

作者头像
Twcat_tree
发布2022-11-29 17:06:30
4340
发布2022-11-29 17:06:30
举报
文章被收录于专栏:二猫の家

一旦订单被创建,只有订单的创建人才可以修改订单中的数 据,其他人则不能修改。 三个属性:产品名称、订购数量、订购人

成员接口

代码语言:javascript
复制
package daili;

public interface OrderApi {
	public String getProductName();

	public void setProductName(String productName, String user);

	public int getOrderNum();

	public void setOrderNum(int orderNum,String user);
	public String getOrderUser();

	public void setOrderUser(String orderUser, String user);

}

Order

代码语言:javascript
复制
package daili;

public class Order implements OrderApi {
	private String productName;
	private int orderNum;
	private String orderUser;
	
	public Order(String productName, int orderNum, String orderUser) {
		this.productName = productName;
		this.orderNum = orderNum;
		this.orderUser = orderUser;
	}

	public Order() {}

	@Override
	public String getProductName() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void setProductName(String productName, String user) {
		// TODO Auto-generated method stub

	}

	@Override
	public int getOrderNum() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public void setOrderNum(int orderNum, String user) {
		// TODO Auto-generated method stub

	}

	@Override
	public String getOrderUser() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void setOrderUser(String orderUser, String user) {
		// TODO Auto-generated method stub

	}

}

OrderProxy

代码语言:javascript
复制
package daili;

public class OrderProxy implements OrderApi {
	private Order order=null;
	
	public OrderProxy(Order order) {
		this.order = order;
	}

	@Override
	public String getProductName() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void setProductName(String productName, String user) {
		if(user!=null && user.equals(this.getOrderUser()))
			{order.setProductName(productName, user);
			}else {
		System.out.println("对不起"+user+", 您无权修改订单中的产品名称");
			}
	}

	@Override
	public int getOrderNum() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public void setOrderNum(int orderNum, String user) {
		if(user!=null && user.equals(this.getOrderUser())) {

				order.setOrderNum(orderNum, user);
		}else {
				System.out.println("对不起" +user+",您无权修改订单中的订购数量");
		}
	}

	@Override
	public String getOrderUser() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void setOrderUser(String orderUser, String user) {
		if(user!=null && user.equals(this.getOrderUser())) {

			order.setOrderUser(orderUser, user);
	}else {
			System.out.println("对不起" +user+",您无权修改订单中的订购人");
	}
}

	}

测试

代码语言:javascript
复制
package daili;

public class test {

	public static void main(String[] args) {
		OrderApi order=new OrderProxy(new Order("设计模式",100," 张三 ="));
		order. setOrderNum(123, "李四");

		System.out.println("李四修改后订单记录没有变化: "+order);
		order.setOrderNum(123,"张三");

		System.out.println("张三修改后订单记录: "+order);

	}

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档