美文网首页
2018-10-12 java策略模式总结备忘

2018-10-12 java策略模式总结备忘

作者: 秋限糖渍栗子 | 来源:发表于2018-10-12 23:40 被阅读0次

    当我们通过继承的方式实现一个超类鸭子和不同种类鸭子的时候,这时候我们对不同种类的鸭子的行为抽象在超类里,具体实现在子类中,但是这样的不好的地方在于,超类若是增加了一个行为,会影响所有的子类,如果要消除子类中有些种类鸭子具有这样的不正确的行为,我们就必须在子类中覆盖,这样工作量就比较巨大,这时候就要采用策略模式来解除行为和鸭子种类直接的耦合关系,都说为了解决继承带来的强耦合关系,我们可以采用包含的方法来解决,就是将鸭子的行为写成行为族,抽象成接口和实现类的模式,用鸭子的抽象类包含行为族的接口,用行为族接口来调用具体的方法,而实现类由子类的构造函数中给出具体的实现类(行为族接口的某个具体的实现类即可),这样就解除了不同行为对鸭子对象的耦合,这样的既可以在鸭子子类中构造函数里设置默认的行为,还以通过set方法来为鸭子赋予不同的行为,方式更加灵活,可以在不改变子类的情况下实现子类的不用行为展现,更加灵活。

    类似的

        ·策略模式把一个系列的算法封装到一个系列的具体策略类里面,作为一个抽象策略类的子类或策略接口的实现类。简单地说:准备一组算法,并将每一个算法封装起来,使它们可以互换。

    相关文章

      网友评论

          本文标题:2018-10-12 java策略模式总结备忘

          本文链接:https://www.haomeiwen.com/subject/nlsnaftx.html