日期:2014-05-18  浏览次数:20801 次

快递业务操作使用哪种设计模式好呢?5
现在我有如下操作 

                发货          提货 
短信            发货人短信    发货人短信 
                收货人短信    收货人短信 

语音通知        发货人语音    发货人语音 
                收货人语音    收货人语音 


每个操作均要提醒发货人和收货人双方,货物是否发出,是否收到。 
如果电话为手机,则使用短信提示,如果电话为座机,则用语音提示。 

我考虑了,需要8个函数来完成,有大量的重复代码。但是由于业务 
其他方面要求,短信、语音通知必须是两对象;发货人/提货人也必须是两个对象 
用什么设计模式能够比较好的解决这个问题?
短信 语音通知 快递业务 设计模式

------解决方案--------------------
不好意思 测试类写错了 修正下


package com.djk.design.test;

/**
 * 测试类
 * @author djk
 *
 */
public class Client
{
    public static void main(String[] args)
    {
        //用短信发送的真正执行者
        InfocationNotice sms = new SMSSend();
        //发货命令
        ICommond sendCommind = new SendCommond(sms);
        //用语音发送的真正执行者
        InfocationNotice voice = new VoiceSend();
        //提货命令
        ICommond acceptCommond  = new AcceptCommond(voice);
        
        Invoker invoker = new Invoker(sendCommind,acceptCommond);
        //提货
        invoker.acaeptGood();
        //发货
        invoker.sendGood();
    }
}