假设一个场景:每天骑自行车下班回家。我有两条路可以走,1:顺着经十路走,2:顺着经一路走。
好,我们有两个回家的方法


1

2



3

4

5

6

7

8

9

10



11

12

13

14

15

16

看看上面两个方法,有啥不同呢?。哦除了走哪条路,其他的都是一样的
这样一样的方法我们抽象为模板方法,作为基类,走哪条路就让子类去做吧


1

2



3

4



5

6



7

8

9

10



11

12

13

14



15

16

17

18

19

20

21



22

23

24

25



26

27

28

29

30

31

32



33

34

35

36

37

38



1

2

3

4

5

6

7



8

9



10



11

12



13

14

15

16



17

18

19

20



1

2

3

4

5

6

7



8

9



10



11

12



13

14

15

16



17

18

19

20

仔细看一下,代码中多了一个hook()方法,这个方法是做啥的呢?有什么好处呢。哦,原来作用是子类可以自己控制是否要执行AlongRoad()方法。假如我今天住朋友家,我只要推车子,开门就行了。(朋友家在车棚)。这个用在这个例子不太恰当,先这样吧