1700458367
设计模式之禅 第10章 模板方法模式
1700458368
1700458370
10.1 辉煌工程——制造悍马
1700458371
1700458373
1700458374
“小三,小三,叫一下其他同事,到会议室开会”,老大跑过来吼,带着坏笑。还没等大家坐稳,老大就开讲了:
1700458375
1700458376
“告诉大家一个好消息,昨天终于把XX模型公司的口子打开了,要我们做悍马模型,虽然是第一个车辆模型,但是我们有能力、有信心做好,我们一定要……”(中间省略20分钟的讲话,如果你听过领导人的讲话,这个你应该能够续上)
1700458377
1700458378
动员工作做完了,那就开始压任务了。“这次时间是非常紧张的,只有一个星期的时间,小三,你负责在一个星期的时间把这批10万车模(注:车模是车辆模型的意思,不是香车美女那个车模)建设完成……”
1700458379
1700458380
“一个星期?这个……是真做不完,要做分析,做模板,做测试,还要考虑扩展性、稳定性、健壮性等,时间实在是太少了”,还没等老大说完,我就急了,再不急我的小命就折在上面了!
1700458381
1700458382
“那这样,只做最基本的实现,不考虑太多的问题,怎么样?”老大又把我弹回去了。
1700458383
1700458384
“只作基本实现?那……”
1700458385
1700458386
唉,领导已经布置任务了,那就开始拼命地做吧。然后就开始准备动手做,在做之前先介绍一下我们公司的背景,我们公司是做模型生产的,做过桥梁模型、建筑模型、机械模型,甚至是一些政府、军事的机密模型,这个不能细说,绝密。公司的主要业务就是把实物按照一定的比例缩小或放大,用于试验、分析、量化或者是销售,等等,上面提到的XX模型公司是专门销售车辆模型的公司,自己没有生产企业,全部是代工。我们公司是第一次从XX模型公司接单,那我怎么着也要把活干好,可时间有限,任务量又巨大,怎么办?
1700458387
1700458388
既然领导都说了,不考虑扩展性,那好办,先按照最一般的经验设计类图,如图10-1所示。
1700458389
1700458390
1700458391
1700458392
1700458393
图10-1 悍马车模型最一般的类图
1700458394
1700458395
非常简单的实现,悍马车有两个型号,H1和H2。按照需求,只需要悍马模型,那好我就给你悍马模型,先写个抽象类,然后两个不同型号的模型实现类,通过简单的继承就可以实现业务要求。我们先从抽象类开始编写,抽象悍马模型如代码清单10-1所示。
1700458396
1700458397
代码清单10-1 抽象悍马模型
1700458398
1700458399
public abstract class HummerModel{
1700458400
1700458401
/*
1700458402
1700458403
*首先,这个模型要能够被发动起来,别管是手摇发动,还是电力发动,反正
1700458404
1700458405
*是要能够发动起来,那这个实现要在实现类里了
1700458406
1700458407
*/
1700458408
1700458409
public abstract void start();
1700458410
1700458411
//能发动,还要能停下来,那才是真本事
1700458412
1700458413
public abstract void stop();
1700458414
1700458415
//喇叭会出声音,是滴滴叫,还是哔哔叫
[
上一页 ]
[ :1.700458366e+09 ]
[
下一页 ]