Java设计模式中策略模式和状态模式怎么区别理解

在设计模式中这两个模式很像,都属于行为模式,在不同的策略或者状态下对象会有不同的行为。通过这两个模式都可以实现解耦少写点if else判断语句。但是要怎么区分这两种模式呢,网上看了些文章感觉越看越糊涂,下面是我自己的一点点理解:

策略模式:强调的是行为方式的改变,用不同的方式做同一件事情,行为方式之间没有关联性。比如去学校上学,可以选择坐公交也可以选择骑自行车,通过不同的交通方式最终完成去学校上学这个事情。

状态模式:强调的是对象状态的改变,不同的状态做的事情不一定相同,状态之间存在一定的关联性。比如买东西,我们对一件衣服很满意于是就下了定单,在下单状态下我们得做付款这个事情,衣服到了后发现和描述的不一样于是就想退货,在退单状态下我们得做申请退款这个事情,在不同的状态下做的事情是不同的。

你可能感兴趣的:(JAVA,设计模式)