{
return COMPUTER_NUMBER;
//存货压力大了,就要通知采购人员不要采购,销售人员要尽快销售
public void clearStock() {
Purchase purchase = new Purchase();
Sale sale = new Sale();
System.out.println("清理存货数量为:"+COMPUTER_NUMBER);
//要求折价销售
sale.offSale();
//要求采购人员不要采购
purchase.refuseBuyIBM();
库房中的货物数量肯定有增减,同时库房还有一个容量显示,达到一定的容量后就要求对一些商品进行折价处理,以腾出更多的空间容纳新产品。于是就有了clearStock方法,既然是清仓处理肯定就要折价销售了。于是在Sale类中就有了offSale方法,我们来看Sale源代码,如代码清单14-3所示。
代码清单14-3 销售管理
public class Sale {
//销售IBM电脑
public void sellIBMComputer(int number) {
//访问库存
Stock stock = new Stock();
//访问采购
Purchase purchase = new Purchase();
if(stock.getStockNumber()
//库存数量不够销售purchase.buyIBMcomputer(number);
System.out.println("销售IBM电脑"+number+"台");
stock.decrease(number);
//反馈销售情况,0~100之间变化,0代表根本就没人卖,100代表非常畅销,出一个卖一个
public int getSaleStatus() {
Random rand = new Random(System.currentTimeMillis());
int saleStatus = rand.nextInt(100);
System.out.println("IBM电脑的销售情况为:"+saleStatus);
return saleStatus;
//折价处理
public void offSale() {
//库房有多少卖多少
Stock stock = new Stock();
System.out.println("折价销售IBM电脑"+stock.getStockNumber()+"台");
Sale类中的getSaleStatus是获得销售情况,这个当然要出现在Sale类中了。记住要把恰当的类放到恰当的类中,销售情况只有销售人员才能反馈出来,通过百分制的机制衡量销售情况。我们再来看场景类是怎么运行的,场景类如代码清单14-4所示。
代码清单14-4 场景类
public class Client {
public static void main(String[] args) {
//采购人员采购电脑
System.out.println("------采购人员采购电脑--------");
Purchase purchase = new Purchase();
purchase.buyIBMcomputer(100);
//销售人员销售电脑
System.out.println("
------销售人员销售电脑--------");
Sale sale = new Sale();
sale.sellIBMComputer(1);
//库房管理人员管理库存
System.out.println("
------库房管理人员清库处理--------");
Stock stock = new Stock();
stock.clearStock();
我们在场景类中模拟了三种人员的活动:采购人员采购电脑,销售人员销售电脑,库管员管理库存。运行结果如下所示:
------采购人员采购电脑--------IBM电脑的销售情况为:95
采购IBM电脑:100台
库存数量为:200
------销售人员销售电脑--------销售IBM电脑1台
库存数量为:199
------库房管理人员清库处理--------清理存货数量为:199
折价销售IBM电脑199台
不再采购IBM电脑
运行结果也是我们期望的,三个不同类型的参与者完成了各自的活动。你有没有发现这三个类是彼此关联的?每个类都与其他两个类产生了关联关系。迪米特法则认为“每个类只和朋友类交流”,这个朋友类并非越多越好,朋友类越多,耦合性越大,要想修改一个就得修改一片,这不是面向对象设计所期望的,况且这还是仅三个模块的情况,属于比较简单的一个小项目。我
更多内容加载中...请稍候...
若您看到此段落,代表章节内容加载失败,请关闭浏览器的阅读模式、畅读模式、小说模式,以及关闭广告屏蔽功能,或复制网址到其他浏览器阅读!