`
石头的日记
  • 浏览: 200769 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类

策略模式所解决代码复用问题

阅读更多

1  定义、

我们先看下策略模式的定义:

  策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。

2 图:

 

注:图是从百度上搜的,原图地址:http://baike.baidu.com/image/4abae5eda6d0d15179f05577

3 :场景描述

  人有基本的行为:吃饭、睡觉、工作

  人物:小明、小丁

4:应用描述

解决代码复用第一步:

  首先小明和小丁都有三种行为,为了解决代码复用的问题,我们用一个抽象类来封装基本行为

 

public abstract class Person {
	public void eat(){
		System.out.println("eat");
	}
	public void sleep(){
		System.out.println("sleep");
	}
	public void work(){
		System.out.println("work");
	}
}

  问题来了,我有一些变化,小明和小丁,工作的内容都不一样的,我们怎么办? 

  目前解决方案:

     1、可以把work方法给覆盖掉 —— 缺点:那要是多个人那,还有小海,小猪...难道都要针对每一个个去写,而且关键不是所有的人都有工作

      2、把work 方法移出来,搞到一个接口里面,谁有工作,谁实现  ——缺点:小明和小丁做同样的工作两者都实现了,这就是重复,还要针对每一个人去实现word方法,很累

   两者都为解决代码复用问题

     我们要对work做的两点:复用,变动

  用策略模式就很好的解决到这点,把work方法单独封装到一个接口里,然后再由perSon来引用,针对接口编程,而不是针对实现编程

 

 

 

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

相关推荐

    CMMI 代码复用报告 模板

    实施代码复用策略时,可能遇到的问题包括选择合适的复用机制(如库、框架、设计模式等),保持代码一致性,以及避免过度复用导致的复杂性增加。报告应提供这些挑战的解决方案和最佳实践。 总之,CMMI代码复用报告是...

    策略模式 实例代码

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在策略模式中,一个类的行为或其算法可以在运行时更改...在实际开发中,特别是在处理具有多种可能行为的复杂问题时,策略模式是一种非常实用的设计模式。

    策略模式的示例代码和思想模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式通常涉及接口或抽象类的实现,允许程序在运行时选择并应用不同的算法或策略。这种模式的核心在于将算法封装到独立的可互换的策略中...

    01-策略模式 代码实例

    通过这种方式,策略模式不仅使我们能够轻松地添加新的排序策略,还避免了硬编码特定的排序算法到`SortingContext`中,从而提高了代码的可维护性和可复用性。这种设计模式在处理具有多种可能行为的情况时特别有用,如...

    设计模式可复用面向对象软件的基础 源码

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。"设计模式可复用面向对象软件的基础"这一主题强调了设计模式在创建可维护、可扩展的面向对象软件中的核心作用。源码实现则为我们...

    设计模式可复用面向对象软件的基础(C++)——强烈推荐

    在面向对象编程中,设计模式提供了一种标准化的方法来处理常见的设计问题,从而提高代码的可读性、可维护性和复用性。本书《设计模式可复用面向对象软件的基础(C++)》是针对这一主题的深度探讨,特别适合C++开发者...

    设计模式:可复用面向对象软件的基础(非扫描版+高清)

    《设计模式:可复用面向对象软件的基础》是一本经典的软件工程著作,它详细阐述了在面向对象编程中,如何通过使用预定义的解决方案模板来解决常见问题,从而提高代码的可读性、可维护性和复用性。设计模式是经验丰富...

    Java策略模式+案例

    3. 代码复用:多个策略对象可以共享相同的上下文,提高代码的复用性。 4. 提高灵活性:客户端可以根据需要选择合适的策略,动态调整行为。 策略模式通常包含三个主要角色: - 环境(Context)角色:持有一个策略对象...

    设计模式可复用面向对象软件的基础(c++).pdf

    - **第5章 行为模式**:探讨了用于定义对象之间交互的模式,如策略模式、观察者模式等,这些模式帮助处理对象之间的通信和职责分配,提高系统的响应性和可维护性。 - **第6章 结论**:总结了全书的主要观点,强调了...

    设计模式之策略模式

    博客文章《设计模式之策略模式》中可能提供了策略模式的实例代码,通过一个实际的问题(例如排序数组)来展示如何应用策略模式。在代码中,可能会有如下结构: - 定义一个`SortStrategy`接口,包含`sort()`方法。 -...

    设计模式解读之--策略模式.pdf

    策略模式提供了一种解决方案,即通过定义接口来封装算法,将这些算法的实现作为参数传递给客户端。这样一来,算法的选择和行为的变化不再硬编码在类的实现中,而是可以在运行时动态选择。例如,在鸭子的例子中,可以...

    设计模式之策略模式源码

    策略模式就是为了解决这类问题而诞生的,它将每种算法封装到具有共同接口的独立类中,使得它们可以互换使用。 策略模式的核心组成部分包括环境(Context)、策略(Strategy)接口和具体策略 ConcreteStrategy 类。环境...

    设计模式可复用面向对象软件的基础 源代码

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。GOF(Gang of Four)是设计模式领域的四位先驱,他们的著作《设计模式:可复用面向对象软件的基础》是这个领域的经典之作。在这...

    分析模式:可复用的对象模型

    2. 策略模式:策略模式定义了一族算法,并将每一个算法封装起来,使它们可以相互替换。它让算法的变化独立于使用算法的客户,使得系统可以根据不同场景选择合适的策略,增强了系统的可扩展性。 3. 访问者模式:它...

    记事本 使用了策略模式和命令模式

    总的来说,策略模式和命令模式在记事本软件中的应用展示了设计模式在提高代码质量、简化复杂性和促进代码复用方面的价值。掌握这些模式对于任何IT专业人员来说都是非常重要的,无论是在日常开发工作中还是在面试中,...

    大话模式源代码-02策略模式

    在"大话模式源代码-02策略模式"的压缩包中,很可能包含了一系列策略模式的具体实现案例,这些源代码可以直接用于学习和应用。以下是对策略模式的一些详细解释: 1. **模式定义**:策略模式定义了一系列的算法,并将...

    策略模式代码

    在描述中提到的"策略模式代码"是指一个具体的实现,可能是通过Java编程语言来演示如何运用策略模式。"排序"是策略模式的一个常见应用场景,比如不同的排序算法(如冒泡排序、选择排序、快速排序等)可以被视为不同的...

    js策略模式和代理模式

    策略模式和代理模式是设计模式中的两种常见模式,它们在软件开发中扮演着重要的角色,尤其是在JavaScript中,这两种模式提供了更加灵活和可维护的代码结构。 策略模式(Strategy Pattern)是一种行为设计模式,它...

    Android 解决ListView的复用问题 demo

    1. **ViewHolder模式**:这是解决ListView复用问题的核心策略。ViewHolder是一个简单的Java类,用于存储ListView每一项的视图引用。通过缓存这些视图,我们可以避免在`getView()`方法中频繁地寻找视图,从而提高性能...

    策略模式demo例子

    这个压缩包文件"StrategyMarket"可能包含了一些关于如何在市场策略应用中实现策略模式的示例代码。 策略模式的核心思想是定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换。这些算法都遵循一个共同的...

Global site tag (gtag.js) - Google Analytics