一、应用场景
有一名为“Anli”的司机,性别男,年龄18,开着一辆“volvo”牌子的车,在一条名为“country-1”长1000米的土路上行使。过了一段时间,他驾驶这辆车在另一条名为“country-111”长2000米的柏油路上行使。请设计以上场景的代码。
提示:
1、 可不可以每一个场景都new一个对象?
2、 在两个场景中,哪些元素是相同的,哪些元素是不同的?设计时体现?
二、原型模式
由(1)和(2)可得,两个场景中唯一不同的是驾驶路的情况,驾驶人和车辆信息一致。在一个类中,可把相同的元素初始化,不同的信息作为方法。如果参考(1)的办法,对于数据量较大或者初始化开销较大的情况,就显得力不从心了,这时原型模式就闪亮登场了~
原型模式:从一个对象创建可定制的另一个对象,不需要了解任何创建的细节。