`
bugyun
  • 浏览: 559225 次
社区版块
存档分类
最新评论

策略模式UML图形及代码

 
阅读更多

参考:http://blog.csdn.net/lovelion/article/details/17517213 

 

//电影票类:环境类  
class MovieTicket {  
    private double price;  
    private Discount discount; //维持一个对抽象折扣类的引用  
  
    public void setPrice(double price) {  
        this.price = price;  
    }  
  
    //注入一个折扣类对象  
    public void setDiscount(Discount discount) {  
        this.discount = discount;  
    }  
  
    public double getPrice() {  
        //调用折扣类的折扣价计算方法  
        return discount.calculate(this.price);  
    }  
}  
  
//折扣类:抽象策略类  
interface Discount {  
    public double calculate(double price);  
}  
  
//学生票折扣类:具体策略类  
class StudentDiscount implements Discount {  
    public double calculate(double price) {  
        System.out.println("学生票:");  
        return price * 0.8;  
    }  
}   
  
//儿童票折扣类:具体策略类  
class ChildrenDiscount implements Discount {  
    public double calculate(double price) {  
        System.out.println("儿童票:");  
        return price - 10;  
    }  
}   
  
//VIP会员票折扣类:具体策略类  
class VIPDiscount implements Discount {  
    public double calculate(double price) {  
        System.out.println("VIP票:");  
        System.out.println("增加积分!");  
        return price * 0.5;  
    }  
}  

 
 

 

  • 大小: 29.4 KB
分享到:
评论

相关推荐

    23种经典设计模式UML类图汇总.chm_23种经典设计模式UML类图汇总.chm_uml_

    《23种经典设计模式UML类图汇总》是一个关于设计模式与UML结合使用的参考资料,主要涵盖了GOF(GoF, Gamma, Helm, Johnson, Vlissides四位作者)提出的23种设计模式。 这23种设计模式可以分为三大类别:创建型模式...

    UML及软件设计模式

    策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互相替换。策略模式让算法的变化独立于使用算法的客户。 6. **代理模式(Proxy Pattern)** 代理模式为其他对象提供一种代理以控制对该对象的访问。它...

    23种设计模式UML图片

    结合"23种设计模式UML图片"这个主题,我们可以深入探讨这23个设计模式及其对应的UML表示。 1. 单例模式:确保一个类只有一个实例,并提供一个全局访问点。UML图通常表现为类图,其中一个类有一个私有的构造函数和一...

    23种设计模式及UML图标及Java实现

    总之,这份资料集合了设计模式的核心概念、UML图形表示以及实际的Java实现,对于想要深入理解设计模式的Java开发者来说,是一份宝贵的资源。通过学习和实践,你可以提升你的编程技能,写出更加优雅和高效的代码。

    抽象工厂模式+工厂方法模式+策略模式+类图实现手机加工厂

    策略模式允许在运行时选择算法或策略,使得代码更加灵活。在手机加工厂中,不同的手机可能有不同的生产策略,如高端手机可能采用更严格的质检流程,而低端手机则可能简化一些步骤。通过策略模式,我们可以定义一系列...

    23常用设计模式的UML

    行为型模式则关注对象间如何交互和分配责任,如观察者模式(Observer)、命令模式(Command)和策略模式(Strategy)。这些模式有助于定义对象之间的通信方式,使得代码更易于理解和测试。 在UML表示中,每种模式...

    23种经典设计模式UML类图汇总

    在这个“23种经典设计模式UML类图汇总”中,你将找到有关这些模式的详细解释和它们在UML中的表示方式。 1. **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。UML类图中,单例类通常有一个私有的构造...

    GOF 23设计模式UML图

    "Visio UML Diagrams"则提供了用UML(统一建模语言)展示这些模式的图形表示,帮助你直观地理解每个模式的类和对象间的关系,以及它们在代码中的实际应用。 设计模式的掌握和应用是提升软件设计能力的关键,它们能...

    uml 文档 适配器模式

    UML是一种标准化的图形建模语言,用于软件开发的建模过程,它可以清晰地表示类、接口、关系和其他系统元素。 适配器模式的核心在于"适配",即将一个类的接口转换为客户期望的另一个接口。在Java中,适配器模式有两...

    UML和设计模式.zip

    UML(统一建模语言)与设计模式是软件工程中的重要工具,它们在系统分析、设计及开发过程中扮演着不可或缺的角色。UML作为可视化建模语言,使得软件设计更加直观易懂,而设计模式则为解决常见问题提供了可复用的解决...

    uml设计模式ppt课件

    UML(统一建模语言)则是描述、可视化和规范软件系统设计的一种图形化语言。在本课件中,南开大学将这两者结合,通过PPT形式深入讲解了如何运用UML来表达和应用设计模式。 **UML基础** UML包括一系列图表,如类图...

    项目开发\J2EE项目实训——UML及设计模式

    UML是一种标准化的图形化建模语言,它为软件开发者提供了一种可视化的方式来描述和理解软件系统。UML包含了多个图种,如用例图、类图、序列图、状态图、活动图等,它们分别用于展示系统的不同层面和行为。例如,用例...

    UML和模式应用.pdf

    5. **策略模式(Strategy Pattern)**:定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换,让算法独立于使用它的客户。 在实际开发中,UML通过图形化的方式帮助我们理解设计思路,而设计模式则提供了...

    argouml source

    2. 设计模式应用:ArgoUML作为一款成熟的开源项目,必然采用了多种设计模式,如工厂模式用于对象的创建,观察者模式用于事件驱动,策略模式可能用于不同的图表绘制策略等。通过对源码的学习,可以了解到这些模式的...

    各种设计模式的uml 10多种

    接下来是行为型设计模式,包括模板方法模式、命令模式、迭代器模式、策略模式、职责链模式和访问者模式。 1. **模板方法模式**:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法...

    UML画的JAVA设计模式

    策略模式(Strategy)定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,让算法的变化独立于使用算法的客户。 在这个压缩包中,作者可能涵盖了以上提到的一些设计模式,通过UML图的形式呈现出来。例如...

    浪曦设计模式与UML 全套视频资源

    设计模式和统一建模语言(UML)是软件开发领域中的重要概念,它们极大地促进了代码的可读性、可维护性和复用性。本资源集合,"浪曦设计模式与UML 全套视频资源",旨在为学习者提供一个全面理解和应用这两个工具的...

    设计模式UML

    设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板,可以被重复使用,以提高...在实际工作中,熟练掌握设计模式UML的表达技巧,可以使复杂的设计变得简洁明了,让代码更具可读性和可维护性。

    设计模式UML类图汇总

    19. **策略模式**:定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换,让算法的变化独立于使用算法的客户。 20. **模板方法模式**:在一个方法中定义一个算法的框架,而将一些步骤延迟到子类中,使得...

Global site tag (gtag.js) - Google Analytics