1700470339
24.1 如此追女孩子,你还不乐
1700470340
1700470341
大家有没有看过尼古拉斯・凯奇主演的《Next》(中文译名为《预见未来》)?尼古拉斯・凯奇饰演一个可以预视并且扭转未来的人,其中有一个情节很是让人心动——男女主角见面的那段情节:Cris Johnson(尼古拉斯・凯奇饰演)坐在咖啡吧台前,看着离自己近在咫尺的Callie Ferris(朱莉安・摩尔饰演),计划着怎么认识这个命中注定的女人,看Cris Johnson如何利用自己的特异功能:
1700470342
1700470343
❑Cris Johnson端着一杯咖啡走过去,说“你好,可以认识你吗?”被拒绝,恢复到坐在咖啡吧台前的状态。
1700470344
1700470345
❑走过去询问是否可以搭车,被拒绝,恢复原状。
1700470346
1700470347
❑帮助解决困境,被拒绝,恢复原状。
1700470348
1700470349
❑采用嬉皮士的方式解决困境,被拒绝,恢复原状。
1700470350
1700470351
❑帮助解决困境,被打伤,装可怜,Callie Ferris怜惜,于是乎相识了。
1700470352
1700470353
看看这是一件多么幸福的事情,追求一个女生可以多次反复地实验,直到找到好的方法和途径为止,这估计是大多数男生都希望获得的特异功能。想想看,看到一个心仪的女生,我们若反复尝试,总会有一个方法打动她的,多美好的一件事。现在我们还得回到现实生活,我们来分析一下类似事情的经过:
1700470354
1700470355
❑复制一个当前状态,保留下来,这个状态就是等会儿搭讪女孩子失败后要恢复的状态,你不恢复原始状态,这不就露馅儿了吗?
1700470356
1700470357
❑每次试探性尝试失败后,都必须恢复到这个原始状态。
1700470358
1700470359
❑N次试探总有一次成功吧,成功以后即可走成功路线。
1700470360
1700470361
想想看,我们这里的场景中最重要的是哪一块?对的,是原始状态的保留和恢复这块,如何保留一个原始,如何恢复一个原始状态才是最重要的,那想想看,我们应该怎么实现呢?很简单呀,我们可以定义一个中间变量,保留这个原始状态。我们先看看类图,如图24-1所示。
1700470362
1700470363
1700470364
1700470365
1700470366
图24-1 男孩状态类图
1700470367
1700470368
太简单的类图了,我们来解释一下图中的状态state是什么意思,在某一时间点的所有位置信息、心理信息、环境信息都属于状态,我们这里用了一个标识性的名词state代表所有状态,比如在追女孩子前心情是期待、心理是焦躁不安等。每一次去认识女孩子都是会发生状态变化的,我们使用changeState方法来代替,由于程序比较简单,就没有编写接口,我们来看实现,如代码清单24-1所示。
1700470369
1700470370
代码清单24-1 男孩状态类
1700470371
1700470372
public class Boy{
1700470373
1700470374
//男孩的状态
1700470375
1700470376
private String state=””;
1700470377
1700470378
//认识女孩子后状态肯定改变,比如心情、手中的花等
1700470379
1700470380
public void changeState(){
1700470381
1700470382
this.state=“心情可能很不好”;
1700470383
1700470384
}
1700470385
1700470386
public String getState(){
1700470387
[
上一页 ]
[ :1.700470338e+09 ]
[
下一页 ]