`
cccai_1234
  • 浏览: 25261 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JAVA 设计模式之策略模式学习笔记

阅读更多

复习下一些设计模式,第一个就是策略模式,在网上找了些资料看到了很多例子,这里自己也想出了一个例子,方便理解或以后忘记了回忆起来方便。

 

汽车启动、行驶、刹车停止这个过程中涉及到加速行驶、匀速行驶、减速行驶几种形式的行驶。

这里定义一个接口叫做行驶(Travel)

 

/**
 * 行驶的行为接口
 */
interface Travel {

	/**
	 * 行驶方法
	 */
	public void travel();

}
/**
 * 加速行驶
 */
class FastTravel implements Travel {

	public void travel() {
		System.out.println("加速行驶-------------");
	}

}

/**
 * 匀速行驶
 */
class NormalTravel implements Travel {

	public void travel() {
		System.out.println("匀速行驶-------------");
	}

}

/**
 * 减速行驶
 */
class SlowTravel implements Travel {

	public void travel() {
		System.out.println("减速行驶-------------");
	}

}

/**
 * 汽车类
 */
class Car {

	private Travel travel;

	public Car(Travel travel) {
		this.travel = travel;
	}

	public void travel() {
		this.travel.travel();
	}

}

汽车行驶测试类
public class Test {
	
	public static void main(String[] args) {
		Car car;
		System.out.println("汽车启动了------");
		car = new Car(new FastTravel());
		car.travel();
		System.out.println("汽车加速完成------");
		car = new Car(new NormalTravel());
		car.travel();
		System.out.println("汽车刹车------");
		car = new Car(new SlowTravel());
		car.travel();
	}
}
 

 

分享到:
评论

相关推荐

    图解java设计模式_学习笔记_java开发

    这份"图解java设计模式_学习笔记"是针对Java开发者深入理解和应用设计模式的重要资源。在这里,我们将深入探讨Java设计模式的核心概念、分类以及它们在实际开发中的应用。 设计模式分为三大类:创建型、结构型和...

    HeadFirst 设计模式学习笔记1--策略模式Demo

    《HeadFirst设计模式学习笔记1--策略模式Demo》 在软件工程中,设计模式是一种解决常见问题的标准方案,它提供了一种在特定情况下组织代码的模板。策略模式是设计模式中的一种行为模式,它允许在运行时选择算法或...

    java设计模式学习笔记,以及各种模式的代码实现

    Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以提高代码的可读性、可维护性和可复用性。这些模式是面向对象编程中的一种最佳实践,通过标准化的方式处理常见的设计问题。下面...

    图解Java设计模式笔记总结word版本.rar

    本资料“图解Java设计模式笔记总结word版本”聚焦于通过图文并茂的方式,深入浅出地解析各种设计模式。以下是基于这个主题的详细知识点讲解: 1. **设计模式的分类** - **创建型模式**:如单例(Singleton)、工厂...

    java设计模式源码和笔记(第一部分)

    Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决常见问题的经验总结,能够提升代码的可读性、可维护性和复用性。本资料包“java设计模式源码和笔记(第一部分)”提供了对Java设计模式的深入理解和...

    300Java设计模式部分学习笔记

    以下是一些在尚学堂300Java设计模式部分学习笔记中涉及的设计模式的知识点: 创建型模式: 创建型模式主要解决对象创建的问题,确保系统的灵活性和封装创建细节。学习笔记中提到了5种创建型模式: 1. 单例模式...

    java学习笔记及设计模式

    Java学习笔记及设计模式是程序员进阶过程中必不可少的资源,涵盖了广泛的Java基础知识和高级概念,同时结合了设计模式这一软件工程的重要组成部分。本资源集合旨在帮助开发者深化对Java语言的理解,提升编程技能,并...

    Java 版设计模式学习笔记-java-design-patterns.zip

    这个“Java版设计模式学习笔记”涵盖了多种设计模式,旨在帮助开发者更好地理解和应用这些模式。让我们深入探讨一下其中可能包含的关键知识点。 一、单例模式 单例模式确保一个类只有一个实例,并提供一个全局访问...

    23种设计模式学习笔记及源码

    这个压缩包文件包含了23种设计模式的学习笔记和源码,旨在帮助开发者深入理解并熟练运用这些模式。以下是对每种设计模式的详细解释,以及它们在Java编程中的应用。 1. **单例模式**:确保一个类只有一个实例,并...

    设计模式之蝉

    在计算机科学领域,设计模式是软件工程中用于解决特定问题的一般性方案,它们是经过实践检验的最佳实践。这些模式被广泛应用于面向对象软件...设计模式的学习与应用是软件工程专业人员不断成长和进步的重要途径之一。

    Java最全学习资料+面试题+DOS命令+设计模式+Excel技巧+java学习笔记

    这份压缩包中的资源全面覆盖了Java的学习和应用,包括学习资料、面试题、DOS命令、设计模式以及Excel技巧和Java学习笔记。让我们逐一探讨这些知识点。 1. **Java学习资料**:Java学习资料通常包括基础语法、面向...

    计算机后端-Java-图解java设计模式笔记.zip

    本压缩包"计算机后端-Java-图解java设计模式笔记"提供了对Java设计模式的深入理解,通过图形化的方式帮助开发者更好地理解和应用这些模式。 1. **单例模式**:保证一个类只有一个实例,并提供一个全局访问点。常见...

    java23种设计模式,3套视频加1个ppt

    Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以提高代码的可重用性、灵活性和可维护性。23种设计模式被广泛接受并分类为三大类:创建型模式(Creational Patterns)、结构型...

    23种设计模式分析学习笔记(Java版)

    在Java编程中,理解并熟练运用设计模式对于编写可维护、可扩展的代码至关重要。本文将深入分析其中的23种设计模式,并通过具体的Java实现来阐述它们的核心思想。 首先,我们可以将学习设计模式的过程比作禅修,起初...

    尚硅谷设计模式源码笔记课件.zip

    本课程是使用Java来讲解设计模式,考虑到设计模式比较抽象,授课采用 图解+框架源码分析的方式 1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML...

    《设计模式解析》第2版学习笔记

    ### 《设计模式解析》第2版学习笔记关键知识点总结 #### 第一部分 面向对象软件开发简介 ##### 第一章 面向对象范型 - **面向对象范型概览**: - 本章通过对比结构化程序设计来引入面向对象的概念。 - 强调了...

    设计模式笔记

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决问题的...设计模式笔记中的内容应该涵盖了以上所述的各种模式,通过深入学习和实践,你可以将这些模式应用到实际项目中,提升自己的编程技能和设计能力。

    Java学习笔记整理

    可能还提到了Java 8引入的默认方法和静态方法,以及如何通过接口实现策略模式等设计模式。 通过对这些笔记的深入学习,你可以掌握Java编程的核心概念,为实际开发打下坚实基础。记住,理论知识与实践结合是提高编程...

    设计模式学习笔记

    在本学习笔记中,我们将重点关注“策略模式”。策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。这种模式允许我们定义一系列算法,并将每一个算法封装起来,使得它们可以相互替换,同时让算法的变化...

    java超强学习笔记

    9. **设计模式**:笔记可能会涵盖常见的设计模式,如单例、工厂、观察者、装饰器等,这些模式是解决软件设计问题的通用策略。 10. **Java EE相关**:如果笔记内容深入,还可能包含Java服务器端开发,如Servlet、JSP...

Global site tag (gtag.js) - Google Analytics