`
airu
  • 浏览: 270855 次
  • 性别: Icon_minigender_1
  • 来自: 云南
社区版块
存档分类
最新评论

每天一个设计模式-- Strategy模式

 
阅读更多
在学习策略模式的时候,我有点迷茫了,因为他和简单工厂模式很像。



这里的Context不就是工厂吗?

对,如果只是从图上看确实一样。但是,我们会发现,他们的侧重点不一样。
也就是意图不一样。策略模式,主要是用来封装一个场景下的不同的算法,通过接口隔离
具体的算法,我们可以对这些算法进行单独测试,并且在Context中替换使用。
再来看简单工厂模式,也是封装了不同的类,但是他的重点在创建,这些具体的产品类是不可以被替换的。

好了,说了那么多,或许我们还是很晕。那就看看Comparator 接口吧。如果你使用了一些集合类,然后需要排序那么你一定要知道如何比较这些集合中的对象吧。
于是,比较算法就成了一个策略了。

Collections.sort(list,new Comparator(){
			@Override
			public int compare(Object o1, Object o2) {
				// TODO Auto-generated method stub
				return 0;
			}
			
		});


这段代码眼熟吧。给一个集合类排序。

  • 大小: 4.9 KB
0
0
分享到:
评论

相关推荐

    C++设计模式--基于Qt4开源跨平台开发框架

    而Qt4作为一个强大的开源库,提供了丰富的功能,使得开发者能够在多个操作系统上构建用户界面和应用程序。 首先,我们要理解设计模式的基本类型,包括创建型、结构型和行为型模式。创建型模式如单例模式(Singleton...

    设计模式-Strategy模式

    在Strategy模式中,我们将每种算法封装为一个策略类,每个策略类都实现了同一接口或抽象类,这样确保所有策略具有相同的契约。在上述案例中,我们可以创建一个`TaxStrategy`接口,包含计算税额的方法,然后为每个...

    设计模式精解-GoF-23种设计模式解析--附C++源代码

    - 策略模式(Strategy):定义一系列的算法,把它们一个个封装起来,并且使它们可以互相替换。 - 模板方法模式(Template Method):定义一个操作中的算法骨架,而将一些步骤延迟到子类中。 - 访问者模式...

    java设计模式---诙谐易懂版

    例如,代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式(Factory Method Pattern)、抽象工厂模式(Abstract Factory Pattern)、适配器模式(Adapter Pattern)、模板方法模式(Template ...

    设计模式培训-strategy

    设计模式是软件工程领域的一个重要概念,它提供了一套解决常见问题的有效方法。在软件开发的过程中,开发者经常会遇到相似的问题,这些问题往往有着类似的解决方案。设计模式就是将这些经过实践验证的解决方案提炼...

    C#设计模式-吕震宇

    设计模式(22)-Strategy Pattern 设计模式(21)-Template Method Pattern 设计模式(20)-Visitor Pattern 设计模式(19)-Observer Pattern 设计模式(18)-Command Pattern 设计模式(17)-Chain of ...

    Java 设计模式-策略模式(Strategy)Android讲解

    首先,策略模式由三个主要组成部分构成:上下文(Context)、策略(Strategy)接口和具体策略(Concrete Strategy)。上下文是使用策略的对象,它维护一个对策略的引用,并调用策略的接口来执行算法。策略接口定义了一组...

    JAVA设计模式-chm版

    这个“JAVA设计模式-chm版”资源显然包含了关于Java设计模式的详细信息,便于理解和应用。设计模式是对常见问题的解决方案的标准化描述,它们在软件工程中起到了重要的作用,帮助开发者创建可维护、可扩展且易于理解...

    设计模式-策略模式(Strategy)

    下面是一个简单的策略模式示例: ```java // 策略接口 public interface ShippingStrategy { double calculateShippingCost(double weight); } // 具体策略类1:平邮策略 public class NormalShipping implements ...

    设计模式精解-GoF 23种设计模式解析附C++.pdf

    - **Strategy模式**:定义了一系列算法,并将每一个算法封装起来,而且使它们之间可以互换。 - **State模式**:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 - **Observer模式**:...

    c++设计模式-行为型模式-策略模式

    策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法...

    设计模式培训-strategy.pdf

    ### 设计模式培训-strategy.pdf 知识点详解 #### 核心概念解析:策略模式与设计模式概览 设计模式作为软件工程领域的重要组成部分,是解决特定问题的有效方法论。设计模式的本质在于将实践中遇到的常见问题进行...

    23种 设计模式---面向对象的基本原则

    - 策略模式(Strategy):定义了一系列的算法,并将每一个算法封装起来,使它们可以互相替换,让算法的变化独立于使用算法的客户。 - 模板方法模式(Template Method):定义一个操作中的算法骨架,而将一些步骤...

    《设计模式--基于C#的工程化实现及扩展》.(王翔)_《0528》.rar

    例如,单例模式利用了静态成员和私有构造函数,确保类只有一个实例;工厂模式通过抽象工厂接口实现对象的延迟创建,提供了一种解耦对象创建和使用的机制;策略模式利用接口或抽象类定义策略,使得在运行时可以动态...

    26种设计模式-----pdf

    设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板。这个压缩包文件名为"26种设计模式",其中可能详细介绍了软件开发中的26个核心设计模式。这些模式是经过时间检验、被广泛接受并反复使用...

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    - **定义**:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 - **应用场景**:为一个复杂子系统提供一个简单接口。 - **优点**:降低了子系统与...

    设计模式-王翔 全本

    《设计模式-王翔 全本》是一本深入探讨软件设计模式的重要著作,作者王翔在书中详尽地阐述了设计模式的理论基础与实践应用。设计模式是软件工程中的重要概念,它代表了在特定情境下,经过时间检验、可复用的解决方案...

    Java 中的设计模式 - jdon

    5. 模板设计模式:这是一种行为模式,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。这样可以让子类在不改变结构的情况下重定义该算法的某些特定步骤。 这本书可能会深入讲解每个模式的动机、结构、...

    设计模式-在线

    设计模式是软件工程中一个重要的概念,它指的是在软件开发中,针对特定问题的最优解和通用模板。设计模式能够帮助开发者构建出更为灵活、可维护和可扩展的系统。设计模式根据其目的和范围,通常被分为三大类:创建型...

Global site tag (gtag.js) - Google Analytics