出行旅游:我们可以有几个策略可以考虑:可以骑自行车,汽车,做火车,飞机。每个策略都可以得到相同的结果,但是它们使用了不同的资源。选择策略的依据是费用,时间,使用工具还有每种方式的方便程度 。
代码描述:
1. `class person;` 2. `class travel_stategy` 3. `{` 4. `public:` 5. ` virtual void travel()` 6. ` {` 7. ` cout <<"default_stategy" << endl;` 8. ` }` 9. `};` 10. `class airplane_stategy:public travel_stategy` 11. `{` 12. `public:` 13. ` virtual void travel()` 14. ` {` 15. ` cout <<"airplane_stategy" << endl;` 16. ` }` 17. `};` 18. `class train_stategy:public travel_stategy` 19. `{` 20. `public:` 21. ` virtual void travel()` 22. ` {` 23. ` cout <<"train_stategy" << endl;` 24. ` }` 25. `};` 26. `class bus_stategy:public travel_stategy` 27. `{` 28. `public:` 29. ` virtual void travel()` 30. ` {` 31. ` cout << "bus_stategy" << endl;` 32. ` }` 33. `};` 34. `travel_stategy default_stategy;` 35. `class person` 36. `{` 37. `public:` 38. ` person(travel_stategy *de_pts = &default_stategy):pts(de_pts)` 39. ` {` 40. ` }` 41. ` void get_stategy()` 42. ` {` 43. ` pts->travel();` 44. ` }` 45. `private:` 46. ` travel_stategy* pts;` 47. `};` 48. `int main()` 49. `{` 50. ` person a;` 51. ` a.get_stategy();` 52. ` ` 53. ` travel_stategy* bs = new bus_stategy();` 54. ` person* b = new person(bs);` 55. ` b->get_stategy();` 56. ` system("pause");` 57. ` return 0; ` 58. `}`
[来自为知笔记(Wiz)](http://www.wiz.cn/i/c09d0bb5 "来自为知笔记(Wiz)")