首页 > 其他分享 >9.3 模版设计模式

9.3 模版设计模式

时间:2023-06-09 14:55:32浏览次数:39  
标签:执行命令 模版 void System println Action 设计模式 public 9.3

  • 抽象类的设计应该是比类更高一层的设计。
  • 抽象类最大好处:1.对子类方法对统一管理;2.可以自身提供有一些普通方法,并且这些普通方法可以调用抽象方法(这些抽象方法必须在有子类提供实现的时候才会生效)
abstract class Action {										// 定义公共行为类
	public static final int EAT = 1;						// “吃饭”操作命令
	public static final int SLEEP = 5;						// “睡觉”操作命令
	public static final int WORK = 10;						// “工作”操作命令
	public void command(int code) {							// 执行命令
		switch (code) {										// 判断命令类型
			case EAT: {
				this.eat();									// 执行命令方法
				break;
			}
			case SLEEP: {
				this.sleep();								// 执行命令方法
				break;
			}
			case WORK: {
				this.work();									// 执行命令方法
				break;
			}
			case EAT + SLEEP + WORK: {						// 组合命令
				this.eat();									// 执行命令方法
				this.sleep();								// 执行命令方法
				this.work();									// 执行命令方法
				break;
			}
		}
	}
	public abstract void eat();								// 【抽象方法】吃饭行为
	public abstract void sleep();								// 【抽象方法】睡觉行为
	public abstract void work();								// 【抽象方法】工作行为
}

class Robot extends Action {									// 定义机器人行为类
	@Override
	public void eat() {										// 方法覆写
		System.out.println("机器人需要接通电源充电。");
	}
	@Override
	public void sleep() {}									// 机器不需要休息,方法体为空
	@Override
	public void work() {										// 方法覆写
		System.out.println("机器人按照固定的套路进行工作。");
	}
}

class Person extends Action {									// 人类行为
	@Override
	public void eat() {										// 方法覆写
		System.out.println("饿的时候安静的坐下吃饭。");
	}
	@Override
	public void sleep() {										// 方法覆写
		System.out.println("安静的躺下,慢慢的睡着,而后做着美梦。");
	}
	@Override
	public void work() {										// 方法覆写
		System.out.println("人类是高级脑类动物,在工作中不断学习与成长。");
	}
}

class Pig extends Action {									// 猪类行为
	@Override
	public void eat() {										// 方法覆写
		System.out.println("吃食槽中饲料。");
	}
	@Override
	public void sleep() {										// 方法覆写
		System.out.println("倒地就睡。");
	}
	@Override
	public void work() {}										// 猪不需要工作,方法体为空
}

public class HelloWorld {
	public static void main(String args[]) {
		Action robotAction = new Robot();						// 机器人行为
		Action personAction = new Person();					// 人类行为
		Action pigAction = new Pig();							// 猪类行为

		System.out.println("------------ 机器人行为 -------------");
		robotAction.command(Action.SLEEP);					// 执行命令---ACTION.SLEEP类中常量访问方法!!!!
		robotAction.command(Action.WORK);						// 【无效操作】执行命令

		System.out.println("------------ 人类的行为 -------------");
		personAction.command(Action.SLEEP + Action.EAT + Action.WORK);	// 执行命令

		System.out.println("------------ 猪类的行为 -------------");
		pigAction.work();									// 执行命令
		pigAction.eat();										// 执行命令
	}
}
  • 这种设计模式,抽象类是个技术活!!

标签:执行命令,模版,void,System,println,Action,设计模式,public,9.3
From: https://www.cnblogs.com/pansidong/p/17469198.html

相关文章

  • 序) 设计模式参考资料
    https://sourcemaking.com/design_patternshttp://javapapers.com/design-patterns/  DesignPatternsInsoftwareengineering,a designpattern isageneralrepeatablesolutiontoacommonlyoccurringprobleminsoftwaredesign.Adesignpatternisn't......
  • 9.3 Django框架
    Django是一个非常流行的PythonWeb开发框架,它是完整且强大的,适用于构建大型Web应用。在这一章节中,我们将详细介绍Django的基本概念、组件和用法。为了便于理解,我们将使用实例来展示如何使用Django构建一个简单的Web应用。9.3.1安装和创建Django项目首先,使用pip......
  • 设计模式系列 | 建造者模式
    很多人也都听说过建造者设计模式,但总是对这个设计模式理解得不够透彻,今天我们就来聊聊建造者设计模式。另外也说说建造者设计模式和工厂模式的区别。定义其实建造者设计模式的定义,很多事看不懂的,也是记不住的,但我们还是得先来看看是如何定义的。TheintentoftheBuilderdesignp......
  • 转载:Spring 框架的设计理念与设计模式分析
    Spring框架的设计理念与设计模式分析<!--LEADSPACE_BODY_END--><!--SUMMARY_BEGIN-->Spring作为现在最优秀的框架之一,已被广泛的使用,并且有很多对其分析的文章。本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构的设计理念,有那几个核心组件?为......
  • 单例这种设计模式
    随着我们编写代码的深入,我们或多或少都会接触到设计模式,其中单例(Singleton)模式应该是我们耳熟能详的一种模式。本文将比较特别的介绍一下Java设计模式中的单例模式。概念单例模式,又称单件模式或者单子模式,指的是一个类只有一个实例,并且提供一个全局访问点。实现思路在单例的类中......
  • 使用c#实现23种设计模式
    使用c#实现23种常见的设计模式设计模式通常分为三个主要类别:创建型模式结构型模式行为型模式。这些模式是用于解决常见的对象导向设计问题的最佳实践。以下是23种常见的设计模式并且提供c#代码案例:创建型模式:1.单例模式(Singleton)publicsealedclassSingleton......
  • SecureCRT for Linux 9.3无限30天试用
    SecureCRTforLinux9.3无限30天试用最近从Windows转到Linux,xshell没有linux版本,其他的又不想用,就下载了securecrt,但是都知道这个是收费的,只能用30天,买又买不起,下载好deb包安装后,默认在当前用户家目录下生成一个.vandyke目录,没有的话进到crt里面,Option-->GlobalOptions可以看到......
  • Python设计模式-01工厂模式
    工厂模式工厂模式(FactoryPattern)是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需指定将要创建的对象的确切类。工厂模式通过定义一个工厂接口来创建对象,让子类决定实例化哪个类。这样可以将对象的创建与使用分离,从而降低系统的耦合度。工厂模式包含三种角色:具体工......
  • Java设计模式-适配器模式
    适配器模式(AdapterPattern)是一种常见的设计模式,它主要用于在不改变现有系统结构的情况下,将一个类的接口转换成客户端所期望的另一个接口。在本文中,我们将介绍适配器模式的基本概念、实现方法以及优缺点,并探讨适配器模式在Java编程语言中的具体应用。简介适配器模式是一种结构型......
  • poi根据模版导出多页word,带插入图片,并压缩下载
    工具类代码packagecn.edu.nfu.jw.srs.utils;importorg.apache.poi.xwpf.usermodel.*;importorg.apache.xmlbeans.XmlOptions;importorg.openxmlformats.schemas.wordprocessingml.x2006.main.CTBody;importjavax.servlet.http.HttpServletResponse;importjava.io.*;i......