GoF定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。本模式使得算法可独立于使用它的客户而变化 。
我的理解就是根据客户的需求定制一个算法系列,可以很方便地随时替换当前的算法。
代码:
输出:
在唱歌。
在打游戏。
在上面的代码中,如果人有了新的动作,比如游泳、打篮球的动作,就对应的继承抽象类写一个动作类,在Person类中设置(注册)就可以了。
也可以使用数组保存所有的动作,也采用注册的方法,然后再让用户进行选择要执行的动作,这样处理起来程序就有了一定的灵活性。