`

设计模式之——策略模式

阅读更多
关于设计模式推荐《Head First 设计模式》
第一次感觉到深入浅出的书,读完之后,心中疑惑基本彻底明了。


场景描述:
         系统支付环节,存在不同账户体系(不同第三方渠道),根据不同的账户对应的支付行为实现不一致,但是支付模式一致。

举例:
用户支付账户:

UserA  A账户体系(易宝账户)
UserB  B账户体系 (连连支付)
UserC  C账户体系(联动优势)


对应订单:

Order_A,Order_B,Order_C

描述:
      用户 A/B/C 购买理财产品后,分别产生订单 Order_A/Order_B/Order_C,每一笔订单都需要进行支付,由于ABC分别对应不同支付渠道的账户类型,总体模式一致,但是每个支付通道又具有各自的特殊处理,如果使用编程式实现,如果一家支付通道接口发生变更,公司产品跟随更改,改动一个地方所有的支付通道都会受到影响。

策略模式
    使用策略模式可以有好的解决上述问题.
//模式超类
public abstract Order{
  //支付行为
  public PayBehavior payBehavior;(针对接口的编程)
  //支付动作
  pbulic void pay(){
    payBehavior.pay();
   }
  //装载策略接口实现类对象
  puoblic void setPayBehavior(PayBehavior payBehavior){
        payBehavior = payBehavior
  }

}

策略接口:

public Interface PayBehavior {

   public void pay();//支付接口
}


策略接口实现:

public class Apay implements PayBehavior {
     public void pay(){
      sysout("A pay");
     }
}

public class Bpay implements PayBehavior {
     public void pay(){
      sysout("B pay");
     }
}

public class Cpay implements PayBehavior {
     public void pay(){
      sysout("C pay");
     }
}

策略对象:

public class OrderPlot extends Order{
   //正常进行构造即可

}

测试:

public class Test{

    public static void main(String[] args){
     //构造策略对象
     Order order = new OrderPlot();
     //装载策略接口
           order.setPayBehavior(new Apay());
     //策略方法执行
           order.pay();
    }

}
分享到:
评论

相关推荐

    java设计模式之——策略模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式主要通过定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换,让算法独立于使用它的客户而变化。这种模式的核心是策略...

    设计模式——策略模式

    策略模式是一种常用的设计模式,它定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。策略模式的主要优点是它可以使得算法的变化独立于使用算法的客户,从而提高系统的...

    设计模式——策略模式 & 单例模式

    策略模式和单例模式是软件设计中两种非常重要的设计模式,它们在实际开发中有着广泛的应用。在这篇文章中,我们将深入探讨这两种模式的核心概念、实现方式以及如何在实际项目中运用。 策略模式是一种行为设计模式,...

    设计模式之美——教你写出高质量代码

    "设计模式之美——教你写出高质量代码"这个主题旨在帮助开发者更好地理解和应用设计模式,从而提升代码的质量和可维护性。设计模式不仅对面试有所帮助,也是职场发展中的必备技能,无论你使用哪种开发语言。 设计...

    设计模式实现——观察者模式

    在《设计模式实现——观察者模式》这篇博客中,作者可能详细解释了观察者模式的概念、结构以及其在实际编程中的应用。以下是对观察者模式的详细阐述: 1. **模式定义**:观察者模式是一种对象行为型模式,它允许...

    深入浅出设计模式一——Duck设计(策略模式)

    《深入浅出设计模式一——Duck设计(策略模式)》 在软件开发中,设计模式是一种被广泛接受并重复使用的解决方案,它针对特定问题提供了一种通用的、可复用的设计方案。策略模式是其中一种行为设计模式,用于定义...

    设计模式浅谈1——策略模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件工程中,我们经常遇到需要根据不同条件或场景动态地改变算法的情况。策略模式就是为了解决这类问题而诞生的,它允许我们用不同的策略(即算法)...

    java设计模式之——组合模式(结构型模式 )

    NULL 博文链接:https://lvwenwen.iteye.com/blog/1549415

    设计模式代码——c#

    C#设计模式(23种设计模式) 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器...

    设计模式——GFour

    《设计模式——GFour》是一本深受IT从业者喜爱的经典书籍,尤其在C++开发者中具有广泛影响力。设计模式是软件工程领域中的一种最佳实践,它总结了在特定情境下解决问题的常见方法,使得代码可读性更强,复用性更高,...

    设计模式——原版的设计模式

    策略模式定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换,策略对象改变算法的执行策略;职责链模式避免将请求的发送者和接收者耦合在一起,而是将这些对象连成一条链,并沿着这条链传递请求,直到有...

    EJB设计模式概述——讲解EJB设计模式的重要性及常用的模式

    EJB(Enterprise JavaBeans)设计模式是解决在Java EE平台中使用EJB组件遇到的问题和挑战的一种策略。这些模式旨在优化系统性能、可扩展性、可维护性,以及提高组件的重用性。在大型、复杂的项目中,尤其在团队协作...

    设计模式——单例模式

    **设计模式——单例模式** 在软件工程中,设计模式是一种在特定场景下解决常见问题的标准方案,可以被复用并提升代码质量。单例模式是设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。这种模式...

    设计模式——基于C#的工程化实现及扩展

    ### 设计模式——基于C#的工程化实现及扩展 #### 概述 本书旨在向读者展示如何利用C# 2.0语法有效地实现和应用设计模式,使其不仅仅局限于简单的例子,而是能够在实际工程项目中发挥重要作用。全书分为七个部分,...

    设计模式解读之一: 策略模式——鸭子游戏.doc

    设计模式解读之一:策略模式——鸭子游戏 策略模式是指定义amily of algorithms,encapsulate each one,and make them interchangeable,这种模式让我们可以在不修改原始代码的情况下,灵活地更换算法。下面我们来...

    设计模式-Java语言中的应用(pdf)

    《设计模式——Java语言中的应用》是一本专为Java开发者深入理解面向对象设计而编写的经典书籍。设计模式是软件工程领域中经过实践验证的、解决常见问题的有效方案,它们代表了在特定上下文中,针对特定问题的最优...

Global site tag (gtag.js) - Google Analytics