策略模式

作用:为了防止出现需求变更,导致的大量代码变更,采用策略模式来帮助我们执行类中的方法。

这里写图片描述
通过创建不同的对象,调用子类(重写父类)的方法

public class Context{
    SuperClass sc;
    public Context(SuperClass sc){
        this.sc = sc;
    }
    public void mothed(){
        sc.test();
    }
}

在客户端使用:

public static void main(String[] args){
    Context c = new Context(new Class1());
    c.method();
}

这样的话只需要修改客户端的条件,即可;

也可以和简单工厂类结合使用,让客户端与SuperClass解耦。

public Context(Object obj){
    SuperClass sc;
    switch(obj){
        case obj1:
            sc = new Class1();
        case ...
    }
}
这样,客户端只需要创建Context的对象,传入一个参数即可。这样的话,虽然要修改Context中的内容,但在对象创建方面就不需要操心了。
简单来说,只要有变更,就不要怕改,但也要尽可能的避免修改,所以,使用怎样的设计模式操作方便,代码改变少,需要一定的功底
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值