1700459611
1700459612
}
1700459613
1700459614
顺便说一下,大家看一下程序中有很多this调用。这个我一般是这样要求项目组成员的,如果你要调用类中的成员变量或方法,需要在前面加上this关键字,不加也能正常的跑起来,但是不清晰,加上this关键字,我就是要调用本类中的成员变量或方法,而不是本方法的中的一个变量。还有super方法也是一样,是调用父类的成员变量或者方法,那就加上这个关键字,不要省略,这要靠约束,还有就是程序员的自觉性,他要是死不悔改,那咱也没招。
1700459615
1700459616
注意 上面每个方法都有一个this.sequence.clear(),估计你一看就明白。但是作为一个系统分析师或是技术经理一定要告诉项目成员,ArrayList和HashMap如果定义成类的成员变量,那你在方法中的调用一定要做一个clear的动作,以防止数据混乱。如果你发生过一次类似问题的话,比如ArrayList中出现一个“出乎意料”的数据,而你又花费了几个通宵才解决这个问题,那你会有很深刻的印象。
1700459617
1700459618
有了这样一个导演类后,我们的场景类就更容易处理了,XX公司要A类型的奔驰车1万辆,B类型的奔驰车100万辆,C类型的宝马车1000万辆,D类型的不需要,非常容易处理,如代码清单11-11所示。
1700459619
1700459620
代码清单11-11 导演类
1700459621
1700459622
public class Client{
1700459623
1700459624
public static void main(String[]args){
1700459625
1700459626
Director director=new Director();
1700459627
1700459628
//1万辆A类型的奔驰车
1700459629
1700459630
for(int i=0;i<10000;i++){
1700459631
1700459632
director.getABenzModel().run();
1700459633
1700459634
}
1700459635
1700459636
//100万辆B类型的奔驰车
1700459637
1700459638
for(int i=0;i<1000000;i++){
1700459639
1700459640
director.getBBenzModel().run();
1700459641
1700459642
}
1700459643
1700459644
//1000万辆C类型的宝马车
1700459645
1700459646
for(int i=0;i<10000000;i++){
1700459647
1700459648
director.getCBMWModel().run();
1700459649
1700459650
}
1700459651
1700459652
}
1700459653
1700459654
}
1700459655
1700459656
清晰、简单吧,我们写程序重构的最终目的就是:简单、清晰。代码是让人看的,不是写完就完事了,我一直在教育我带的团队成员,Java程序不是像我们前辈写二进制代码、汇编一样,写完基本上就自己能看懂,别人看就跟看天书一样,现在的高级语言,要像写中文汉字一样,你写的,别人能看懂。这就是建造者模式。
1700459657
1700459658
1700459659
1700459660
[
上一页 ]
[ :1.700459611e+09 ]
[
下一页 ]