界说一系列算法,封装每个算法,并使它们可交换。战略使算法独立于运用该算法的客户端而改变。
通勤是咱们日常日子的一部分。每天,当咱们脱离家上班时,咱们一定要挑选交通工具。作为通勤者,咱们有许多挑选,出租车,公共汽车或火车,这实际上取决于咱们的心境和咱们所在的情况。就像你出门时刻来得很晚而赶时刻相同,那么你可能会乘出租车 。在别的的某天,假如你有足够的时刻并不在有没有座位,那么乘公共汽车是一个不错的挑选。在咱们想要保证咱们准时抵达某个方位而又不会遇到交通拥堵的费事的日子里,咱们会坐火车。
这是一个战略形式的完美示例。
公共汽车,火车和出租车都是交通工具,但它们当然在许多方面不相同。它们在本钱上互相不同,而且它们选用不同的道路将您带到目的地。它们是相同的,由于虽然游览时刻犬牙交错,但它们都是抵达目的地的一种方法。他们都归于一个领域,即运送。
咱们首先来创立一个关于运送()的接口:
创立一个完成接口的类:
创立一个完成接口的类:
创立一个完成接口的类:
最终,咱们应该创立一个乘客()类来代表咱们:
接下来咱们来看看,乘客怎么在上下文中运用不同的交通工具:
公交车(),火车()和出租车()的类与乘客()的类不相同,由于它们都完成了运送()接口。
在咱们的示例中,经过运用战略形式,咱们界说了算法(公交车,火车和出租车)的领域(运送领域),封装了每个算法(乘客类仅知道运送()接口),并使它们可交换(它们完成了通用接口) )。战略使算法独立于运用该算法的客户端(类)而改变。