广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java:抽象类与模板方法模式详解
  • 250
分享到

java:抽象类与模板方法模式详解

2024-04-02 19:04:59 250人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、抽象类概念二、抽象方法的特点三、抽象类的特点四、创建抽象类与抽象方法抽象类: 抽象方法: 五、抽象类与抽象方法的使用六、模板方法模式1. 定义2. 意图3. 模式结构4. 示

一、抽象类概念

1.Java中可以定义没有方法体的方法,该方法由子类来具体实现

2.该没有方法体的方法我们称之为抽象方法,含有抽象方法的类称之为抽象类

二、抽象方法的特点

1.只有方法头没有方法体的方法称为抽象方法

2.抽象方法用abstract来修饰

3.抽象方法代表一种不确定的操作或行为

4.抽象方法不能被调用

三、抽象类的特点

1.定义中含有抽象方法的类叫做抽象类

2.抽象类用abstract来修饰

3.抽象类代表一种抽象的对象类型

4.抽象类并不能实例化

5.抽象类中可以有具体的方法,可以没有抽象方法

四、创建抽象类与抽象方法

抽象类:

在这里插入图片描述

抽象方法:

在这里插入图片描述

五、抽象类与抽象方法的使用

抽象类不能实例化,可以让子类继承抽象类进行实例化

在这里插入图片描述

六、模板方法模式

1. 定义

一个模板方法用一些抽象的操作定义一个算法,二而子类将重定义这些操作以提供具体的行为

2. 意图

模板方法模式定义了一个算法的步骤,并允许一个或多个步骤子类为一个或多个步骤提供其具体行为。
让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。

3. 模式结构

定义抽象类,为所有子类提供一个算法框架

在这里插入图片描述

具体子类,提供工作流程的具体实现

在这里插入图片描述

调用类

在这里插入图片描述

4. 示例

1.定义抽象类,为所有子类提供一个算法框架(当然也可以提供多个算法框架)

2.定义了两个具体子类,每一个子类负责一个平台的工作流程的具体实现

3.调用类就可以根据该套代码运行的平台去选择对应的子类实例化,调用算法框架


package com.demo;

abstract class Control {
	//创建模板方法
	abstract void initUart();
	abstract String getCommand();
	abstract void openLight();
	abstract void closeLight();
	//创建工作流程1
	public void work() {
		String cmd;
		initUart();
		cmd = getCommand(); //根据条件执行不同流程
		if (cmd == "open") {
			openLight();
		} else if (cmd == "close") {
			closeLight();
		}
	}
	//也可创建N个工作流程
}

class Arduino extends Control {
	//工作流程具体实现
	void initUart(){
		System.out.println("Arduino initUart");
	}
	String getCommand(){
		System.out.println("Arduino getCommand");
		return "open";
	}
	void openLight() {
		System.out.println("Arduino openLight");
	}
	void closeLight() {
		System.out.println("Arduino closeLight");
	}
}

class RaspberryPi extends Control {
	//工作流程具体实现
	void initUart(){
		System.out.println("raspberryPi initUart");
	}
	String getCommand(){
		System.out.println("RaspberryPi getCommand");
		return "close";
	}
	void openLight() {
		System.out.println("raspberryPi openLight");
	}
	void closeLight() {
		System.out.println("raspberryPi closeLight");
	}
}

public class Test {
	public static void main(String[] args) {
		//Arduino执行工作流程
		Arduino one = new Arduino();
		one.work();
		//RaspberryPi执行工作流程
		RaspberryPi two = new RaspberryPi();
		two.work();
	}
}

运行结果:

在这里插入图片描述

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: java:抽象类与模板方法模式详解

本文链接: https://www.lsjlt.com/news/134557.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java:抽象类与模板方法模式详解
    目录一、抽象类概念二、抽象方法的特点三、抽象类的特点四、创建抽象类与抽象方法抽象类: 抽象方法: 五、抽象类与抽象方法的使用六、模板方法模式1. 定义2. 意图3. 模式结构4. 示...
    99+
    2022-11-12
  • Java 抽象类与模板设计模式详解
    抽象类抽象类是为了方法覆写而提供的类结构,因为其无法自身直接进行对象实例化操作,所以在实际应用中,抽象类主要目的是进行过程操作使用,当你要使用抽象类进行开发的时候,往往都是在你设计中需要解决类继承问题时所带来的的代码重复处理。普通类是一个完...
    99+
    2023-06-03
  • Java设计模式之java模板方法模式详解
    目录模板方法模式介绍角色代码演示模板方法模式总结优点缺点适用场景源码分析模板方法模式的典型应用Servlet 中的模板方法模式Hello World!Spring中的IOC容器启动—...
    99+
    2022-11-12
  • Java设计模式之模板方法模式详解
    目录模板方法模式模板方法模式的优缺点使用场景总结模板方法模式 模板方法模式法(Template Method)定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不...
    99+
    2022-11-13
  • Java设计模式之抽象工厂模式详解
    目录一、什么是抽象工厂模式二、示例程序三、UML一、什么是抽象工厂模式 为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类,这称之为抽象工厂模式(Abstract ...
    99+
    2022-11-12
  • Java设计模式之模板方法模式TemplateMethodPattern详解
    目录概述模板方法模板方法模式好莱坞原则好莱坞原则与依赖倒置原则真实案例模板方法模式的注意事项和细节概述 模板方法 模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现。那...
    99+
    2022-11-13
    Java模板方法模式 Java Template Method Pattern
  • Java设计模式之模板方法详解
    目录概念核心设计要点优缺点应用场景模板方法和策略模式的区别代码案例概念 模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术,没有关联关系。因此,在模板方法...
    99+
    2022-11-13
  • java中抽象工厂模式与工厂方法模式的区别
    一、简单工厂模式特点:它是一个具体的类,非接口 抽象类。有一个重要的create()方法,利用if或者 switch创建产品并返回。create()方法通常是静态的,所以也称之为静态工厂。缺点:扩展性差(我想增加一种面条,除了新增一个面条产...
    99+
    2015-05-09
    java入门 java 抽象工厂模式 工厂方法模式 区别
  • Java工厂模式之简单工厂,工厂方法,抽象工厂模式详解
    目录1、简单工厂模式1.定义2.代码案例3.适用场景4.优缺点2、工厂方法模式1.定义2.代码案例3.适用场景4.优缺点3、抽象工厂模式1.定义2.代码案例3.适用场景4.优缺点4、...
    99+
    2022-11-13
  • 详解Java实践之抽象工厂模式
    目录一、前言二、开发环境三、抽象工厂模式介绍四、案例场景模拟4.1、场景模拟工程4.2、场景简述4.2.1、模拟单机服务 RedisUtils4.2.2、模拟集群 EGM4.2.3、...
    99+
    2022-11-12
  • java中抽象类、抽象方法、接口与实现接口实例详解
    前言对于java中的抽象类,抽象方法,接口,实现接口等具体的概念就不在这里详细的说明了,网上书本都有很多解释,主要是我懒,下面通过一个例子来说明其中的精髓要点,能不能练成绝世武功,踏上封王之路,就看自己的的啦(不要误会,我指的只是我自己啦啦...
    99+
    2023-05-30
    java 抽象类 接口
  • Java中抽象类与方法的重写方式
    目录1. 抽象类2. 方法的重写1. 什么情况下需要重写父类中的类型呢?2. @Override 称为注解总结1. 抽象类 关键字:abstract 类:用来描述一类具体的事物 抽象...
    99+
    2023-02-15
    Java抽象类 Java方法重写 抽象类与方法重写
  • Java行为型设计模式之模板方法详解
    目录模板方法模式应用场景主要角色优缺点模板方法模式的基本使用创建抽象模板角色创建具体实现客户端调用模板方法模式 模板方法模式属于行为型设计模式。它是指定义一个操作中的算法的框架,而将...
    99+
    2022-11-13
  • python设计模式之抽象工厂模式详解
    抽象工厂模式(Abstract Factory Pattern):属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它...
    99+
    2022-11-12
  • PHP设计模式之模板方法模式TemplateMethodPattern详解
    目录简介适用场景优点缺点其它代码简介 模板方法模式,是行为型的设计模式。 定义一个操作中的算法的骨架,而将一些步骤延迟到子类当中,使得子类可以不改变一个算法的结构即可重新定义该算法的...
    99+
    2022-12-20
    PHP设计模式之模板方法模式 PHP模板方法模式
  • Java设计模式-模板方法模式
    定义Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template Method lets subcl...
    99+
    2023-06-05
  • C++模板基础之函数模板与类模板实例详解
    目录泛型编程 函数模板 函数模板的概念 函数模板的格式 函数模板的原理 函数模板的实例化 函数模板的匹配原则 类模板 类模板的定义格式 类模板的实例化 总结泛型编程  ...
    99+
    2022-11-12
  • Java设计模式之模板方法模式
    在我们实际开发中,如果一个方法极其复杂时,如果我们将所有的逻辑写在一个方法中,那维护起来就很困难,要替换某些步骤时都要重新写,这样代码的扩展性就很差,当遇到这种情况就要考虑今天的主角...
    99+
    2022-11-13
    Java 设计模式 模板方法模式
  • 知道java抽象类与抽象方法是什么吗?
    java抽象类与抽象方法是什么?在类的继承中,如果一个个新的子类被定义,子类变得越来越具体,父类变得更加一般和通用,类的设计应该保证父子类能够共享特征,有时将父类设计得非常抽象,使得父类没有具体的实例,这样的类叫做抽象类;一般当我们设计一个...
    99+
    2016-03-20
    java教程 java 抽象类 抽象方法
  • 怎么理解Java设计模式的模板方法模式
    这篇文章主要讲解了“怎么理解Java设计模式的模板方法模式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Java设计模式的模板方法模式”吧!一、什么是模板方法模式模板方法模式在一个方...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作