参考: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; } }
相关推荐
《23种经典设计模式UML类图汇总》是一个关于设计模式与UML结合使用的参考资料,主要涵盖了GOF(GoF, Gamma, Helm, Johnson, Vlissides四位作者)提出的23种设计模式。 这23种设计模式可以分为三大类别:创建型模式...
策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互相替换。策略模式让算法的变化独立于使用算法的客户。 6. **代理模式(Proxy Pattern)** 代理模式为其他对象提供一种代理以控制对该对象的访问。它...
结合"23种设计模式UML图片"这个主题,我们可以深入探讨这23个设计模式及其对应的UML表示。 1. 单例模式:确保一个类只有一个实例,并提供一个全局访问点。UML图通常表现为类图,其中一个类有一个私有的构造函数和一...
总之,这份资料集合了设计模式的核心概念、UML图形表示以及实际的Java实现,对于想要深入理解设计模式的Java开发者来说,是一份宝贵的资源。通过学习和实践,你可以提升你的编程技能,写出更加优雅和高效的代码。
策略模式允许在运行时选择算法或策略,使得代码更加灵活。在手机加工厂中,不同的手机可能有不同的生产策略,如高端手机可能采用更严格的质检流程,而低端手机则可能简化一些步骤。通过策略模式,我们可以定义一系列...
行为型模式则关注对象间如何交互和分配责任,如观察者模式(Observer)、命令模式(Command)和策略模式(Strategy)。这些模式有助于定义对象之间的通信方式,使得代码更易于理解和测试。 在UML表示中,每种模式...
在这个“23种经典设计模式UML类图汇总”中,你将找到有关这些模式的详细解释和它们在UML中的表示方式。 1. **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。UML类图中,单例类通常有一个私有的构造...
"Visio UML Diagrams"则提供了用UML(统一建模语言)展示这些模式的图形表示,帮助你直观地理解每个模式的类和对象间的关系,以及它们在代码中的实际应用。 设计模式的掌握和应用是提升软件设计能力的关键,它们能...
UML是一种标准化的图形建模语言,用于软件开发的建模过程,它可以清晰地表示类、接口、关系和其他系统元素。 适配器模式的核心在于"适配",即将一个类的接口转换为客户期望的另一个接口。在Java中,适配器模式有两...
UML(统一建模语言)与设计模式是软件工程中的重要工具,它们在系统分析、设计及开发过程中扮演着不可或缺的角色。UML作为可视化建模语言,使得软件设计更加直观易懂,而设计模式则为解决常见问题提供了可复用的解决...
UML(统一建模语言)则是描述、可视化和规范软件系统设计的一种图形化语言。在本课件中,南开大学将这两者结合,通过PPT形式深入讲解了如何运用UML来表达和应用设计模式。 **UML基础** UML包括一系列图表,如类图...
UML是一种标准化的图形化建模语言,它为软件开发者提供了一种可视化的方式来描述和理解软件系统。UML包含了多个图种,如用例图、类图、序列图、状态图、活动图等,它们分别用于展示系统的不同层面和行为。例如,用例...
5. **策略模式(Strategy Pattern)**:定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换,让算法独立于使用它的客户。 在实际开发中,UML通过图形化的方式帮助我们理解设计思路,而设计模式则提供了...
2. 设计模式应用:ArgoUML作为一款成熟的开源项目,必然采用了多种设计模式,如工厂模式用于对象的创建,观察者模式用于事件驱动,策略模式可能用于不同的图表绘制策略等。通过对源码的学习,可以了解到这些模式的...
接下来是行为型设计模式,包括模板方法模式、命令模式、迭代器模式、策略模式、职责链模式和访问者模式。 1. **模板方法模式**:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法...
策略模式(Strategy)定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,让算法的变化独立于使用算法的客户。 在这个压缩包中,作者可能涵盖了以上提到的一些设计模式,通过UML图的形式呈现出来。例如...
设计模式和统一建模语言(UML)是软件开发领域中的重要概念,它们极大地促进了代码的可读性、可维护性和复用性。本资源集合,"浪曦设计模式与UML 全套视频资源",旨在为学习者提供一个全面理解和应用这两个工具的...
设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板,可以被重复使用,以提高...在实际工作中,熟练掌握设计模式UML的表达技巧,可以使复杂的设计变得简洁明了,让代码更具可读性和可维护性。
19. **策略模式**:定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换,让算法的变化独立于使用算法的客户。 20. **模板方法模式**:在一个方法中定义一个算法的框架,而将一些步骤延迟到子类中,使得...