有两种组合策略的模式,分别为装饰器模式和策略模式。两种模式实现不同,但是都是将一些组合问题分解为局部,最后一并计算,但是装饰器模式在装饰类过多的时候会显得比较复杂。
装饰器模式的步骤:
1.创造一个接口。
2.创造一些实现该接口的实体类(多个)
3.创建实现接口的抽象装饰类。
4.创建拓展抽象装饰类的实体装饰类(多个)
5.应用,可以用实体装饰类来装饰接口产生的对象了
2 和 4创建的实体类形成一个组合关系,设2创建了n类实体,4创建了m类实体,那么最终形成的实体类是n*m个。
如果要进行更加多重的装饰扩展,就会显得比较复杂。
来看看另外一种模式,策略模式
使用场景:1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 2、一个系统需要动态地在几种算法中选择一种。 3、如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现。
1.先创建一个策略接口
2.创建实现接口的实体类
3.创建环境类。相当于一个中介,以策略为构造函数。
4.最后再创建一个执行策略的主体来按不同方式执行这些策略。