代理模式实例订单系统

简介: 代理模式实例订单系统

一旦订单被创建,只有订单的创建人才可以修改订单中的数
据,其他人则不能修改。
三个属性:产品名称、订购数量、订购人
在这里插入图片描述
成员接口

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

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

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+",您无权修改订单中的订购人");
    }
}

    }

测试

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);

    }

}
目录
相关文章
|
4月前
|
设计模式 前端开发 算法
前端代理模式之【策略模式】
前端代理模式之【策略模式】
33 0
|
5月前
|
设计模式 SQL 数据库
淘东电商项目(61) -聚合支付(基于模板方法设计模式管理支付回调)
淘东电商项目(61) -聚合支付(基于模板方法设计模式管理支付回调)
39 0
|
3月前
|
设计模式 安全 Java
Java设计模式—单例模式的实现方式和使用场景
那么为什么要有单例模式呢?这是因为有的对象的创建和销毁开销比较大,比如数据库的连接对象。所以我们就可以使用单例模式来对这些对象进行复用,从而避免频繁创建对象而造成大量的资源开销。
57 1
|
4月前
|
Java
代理模式【静态代理和动态代理实现业务功能扩展】
代理模式【静态代理和动态代理实现业务功能扩展】
|
5月前
|
设计模式 SQL 数据库
淘东电商项目(62) -聚合支付(基于模板方法设计模式管理支付回调-支付宝)
淘东电商项目(62) -聚合支付(基于模板方法设计模式管理支付回调-支付宝)
31 0
|
8月前
|
缓存 Java 数据安全/隐私保护
关于代理模式的相关配置方法
关于代理模式的相关配置方法
|
8月前
|
设计模式 Java
实时更新:解析Java设计模式中的观察者模式
在软件开发领域,设计模式是一组经过验证的最佳实践方法,用于解决各种常见问题。观察者模式是一种行为型设计模式,其目标是在对象之间建立一种依赖关系,使得一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。在本文中,我们将深入了解观察者模式的核心思想、应用场景以及它在Java中的实际运用。
64 0
|
11月前
|
存储 设计模式
【设计模式】【第四章】【订单状态流转】【状态模式 + 享元模式+模板方法模式】
【设计模式】【第四章】【订单状态流转】【状态模式 + 享元模式+模板方法模式】
|
数据采集 JSON 监控
你还不知道责任链模式的使用场景吗?
你还不知道责任链模式的使用场景吗?
|
设计模式 缓存 Java
Java设计模式之秒杀系统
Java设计模式之秒杀系统