打字猴:1.700469836e+09
1700469836
1700469837 在这种环境下,最累的是写信人,为了发送一封信要有4个步骤,而且这4个步骤还不能颠倒,我们先看看这个过程如何通过程序表现出来,有人开始用这个过程写信了,如代码清单23-3所示。
1700469838
1700469839 代码清单23-3 场景类
1700469840
1700469841 public class Client{
1700469842
1700469843 public static void main(String[]args){
1700469844
1700469845 //创建一个处理信件的过程
1700469846
1700469847 ILetterProcess letterProcess=new LetterProcessImpl();
1700469848
1700469849 //开始写信
1700469850
1700469851 letterProcess.writeContext(“Hello,It’s me,do you know who I am?I’m
1700469852
1700469853 your old lover.I’d like to……”);
1700469854
1700469855 //开始写信封
1700469856
1700469857 letterProcess.fillEnvelope(“Happy Road No.666,God Province,Heaven”);
1700469858
1700469859 //把信放到信封里,并封装好
1700469860
1700469861 letterProcess.letterInotoEnvelope();
1700469862
1700469863 //跑到邮局把信塞到邮箱,投递
1700469864
1700469865 letterProcess.sendLetter();
1700469866
1700469867 }
1700469868
1700469869 }
1700469870
1700469871 运行结果如下所示:
1700469872
1700469873 填写信的内容……Hello,It’s me,do you know who I am?I’m your old lover.I’d like to……
1700469874
1700469875 填写收件人地址及姓名……Happy Road No.666,God Province,Heaven
1700469876
1700469877 把信放到信封中……
1700469878
1700469879 邮递信件……
1700469880
1700469881 我们回过头来看看这个过程,它与高内聚的要求相差甚远,更不要说迪米特法则、接口隔离原则了。你想想,你要知道这4个步骤,而且还要知道它们的顺序,一旦出错,信就不可能邮寄出去,这在面向对象的编程中是极度地不适合,它根本就没有完成一个类所具有的单一职责。
1700469882
1700469883 还有,如果信件多了就非常麻烦,每封信都要这样运转一遍,非得累死,更别说要发个广告信了,那怎么办呢?还好,现在邮局开发了一个新业务,你只要把信件的必要信息告诉我,我给你发,我来完成这4个过程,只要把信件交给我就成了,其他就不要管了。非常好的方案!我们来看类图,如图23-2所示。
1700469884
1700469885
[ 上一页 ]  [ :1.700469836e+09 ]  [ 下一页 ]