聊聊代码设计的程序解耦

本文讨论了在程序开发中如何通过中介者模式来解决代码的高耦合问题,提供了一个具体的例子,展示了如何将原本耦合的采购、销售和仓储服务解耦,使它们仅依赖于中介者,降低了代码维护和扩展的难度。
摘要由CSDN通过智能技术生成

写在前面的话

        我们在程序开发过程中经常会遇到这样的问题:

        我们在开发的中后期,新增、修改需求变得越来越难,因为每一次在原有基础上的新增、修改,都不可避免的接触到旧有代码,而旧有代码在设计之初兵没有考虑太多维护、扩展的问题,这就大大增加了我们的开发成本。诚然,把代码开发到可以运行并不是不能做到,但这相当于变相抛出问题,给后来维护、修改代码的同时挖坑。

        出现这些问题的原因大多是因为代码的:低内聚,高耦合。

        大家都知道代码设计的基本原则是高内聚、低耦合,但代码是一点点完善的,需求是一期期迭代的,很少有人在程序开发之初就做到良好的代码设计,这就导致了很多代码可以运行,但设计上不合理,加大了维护和扩展的难度。

 举一个栗子

        假设需求是这样的:

        1、采购员需要采购一批电脑:当销售状态良好时,我们全量采购,当销售状况一般时,我们折半采购,当仓储清仓时,我们停止采购。

        2、销售员需要销售一批电脑:当库存足够时,我们直接下单,当库存不足时,我们需要先补充库存,然后再下单,当仓储清仓时,我们打折销售。

        3、仓储需要管理一批电脑:我们有增加库存、减少库存、查询仓储的方法给别人调用,我们还要有清仓的业务,当清仓时,我们告诉采购停止采购,我们告诉销售现有库存打折销售。

        这不是一个很复杂的程序代码设计,刚毕业的菜鸟都可以做这样的设计:

        我们创建采购、销售、仓储三个服务类

        采购服务设计如下:

public class Purchase{
    // 仓储对象
    private Stock stock;
   

    // 采购服务
    public void buyComputer(int number){
        // 获取仓储库存
        int stockNumber = stock.getStockNumber();
        // 判断库存,根据剩余库存判断销售状态,采取不同的采购策略
    }

    public void stopBubComputer(){
        // 停止采购
    }
}

          销售服务类如下:

public class Sale{

    // 仓储对象
    private Stock stock;

    // 采购对象
    private Purchase purchase;

    public void saleComputer(int number){

        // 获取仓储信息,如果仓储库存小于订单数量,则采购后再销售,否则直接销售    
    }

    public void offSaleComputer(int number){

        // 打折销售
    }
}

          库存服务类如下:

public class Stock{


    private static STOCK_NUMBER = 100;

    private Purchase purchase;

    private Sale sale;


    // 新增库存
    public void increaseStock(in
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值