类层次优于标签类

2023-12-15 07:12
文章标签 层次 标签 优于

本文主要是介绍类层次优于标签类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

什么是标签类(Tagged Class)?

标签类指的是一个类中包含一个标签属性(tag field),通过这个标签属性的值来表示对象的类型或状态。通常,通过在类中定义一个额外的标签字段,然后用该字段的值来标识对象的类型或状态。

举例:
考虑一个图形类,可以表示矩形和圆形。标签类的实现可能如下:public class Shape {private String type; // 标签属性// 构造函数public Shape(String type) {this.type = type;}// 方法根据标签属性判断对象类型public double area() {if ("rectangle".equals(type)) {// 计算矩形面积的逻辑return /*...*/;} else if ("circle".equals(type)) {// 计算圆形面积的逻辑return /*...*/;}return 0.0;}
}

在这个例子中,Shape 类包含一个名为 type 的标签属性,根据这个标签属性的值来判断对象是矩形还是圆形。

类层次优于标签类 的原则是指在设计和组织代码时,更倾向于使用类的继承关系来表示不同的类型和行为,而不是使用标签或枚举等方式来标识对象的类型。以下是一个简单的例子来说明类层次优于标签类:

abstract class Shape {public abstract void draw();
}class Circle extends Shape {@Overridepublic void draw() {System.out.println("Drawing a circle");}
}class Square extends Shape {@Overridepublic void draw() {System.out.println("Drawing a square");}
}class Triangle extends Shape {@Overridepublic void draw() {System.out.println("Drawing a triangle");}
}

为什么类层次优于标签类?

使用类层次结构,可以将每个形状表示为一个独立的类,而不是在一个类中使用标签属性。这样做有以下优点:

  1. 清晰性: 使用类层次结构可以更清晰地表示对象之间的关系,代码更易读。
  2. 扩展性: 当需要添加新的形状时,只需添加一个新的子类,而不是修改现有类的标签和逻辑。
  3. 类型安全: 类层次结构提供了类型安全性,编译器可以在编译时捕获一些错误。

如何判断是不是一个标签类?

在代码审查或分析中,可以通过以下特征来判断是否使用了标签类:

  1. 存在标签属性: 类中包含一个额外的属性,该属性用于标识对象的类型或状态。
  2. 通过标签值进行条件判断: 类中的方法通过检查标签属性的值来执行不同的逻辑。

这篇关于类层次优于标签类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/495583

相关文章

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

Spring下自定义xml标签

dubbo自定义了很多xml标签,例如<dubbo:application>,那么这些自定义标签是怎么与spring结合起来的呢?我们先看一个简单的例子。 一 编写模型类 1 package com.hulk.testdubbo.model;2 3 public class Hero {4 private String name;5 private int

MATLAB层次聚类分析法

转自:http://blog.163.com/lxg_1123@126/blog/static/74841406201022774051963/ 层次聚类是基于距离的聚类方法,MATLAB中通过pdist、linkage、dendrogram、cluster等函数来完成。层次聚类的过程可以分这么几步: (1) 确定对象(实际上就是数据集中的每个数据点)之间的相似性,实际上就是定义一个表征

Struts2常用标签总结--转载

Struts2常用标签总结 一 介绍 1.Struts2的作用 Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。 Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于

LLM应用实战: 产业治理多标签分类

数据介绍 标签体系 产业治理方面的标签体系共计200+个,每个标签共有4个层级,且第3、4层级有标签含义的概括信息。 原始数据 企业官网介绍数据,包括基本介绍、主要产品等 企业专利数据,包括专利名称和专利摘要信息,且专利的数据量大。 LLM选型 经调研,采用Qwen2-72B-Instruct-GPTQ-Int4量化版本,占用显存更少,且效果与非量化相当,

Vue 向标签中传入 this

我曾经问过 chatgpt 这个问题,chatgpt 说不行! 但是,chatgpt 说的就算吗? 来试试吧: https://andi.cn/page/621733.html 当然是可以的!

SimD:基于相似度距离的小目标检测标签分配

摘要 https://arxiv.org/pdf/2407.02394 由于物体尺寸有限且信息不足,小物体检测正成为计算机视觉领域最具挑战性的任务之一。标签分配策略是影响物体检测精度的关键因素。尽管已经存在一些针对小物体的有效标签分配策略,但大多数策略都集中在降低对边界框的敏感性以增加正样本数量上,并且需要设置一些固定的超参数。然而,更多的正样本并不一定会带来更好的检测结果,事实上,过多的正样本

纯HTML标签详解

HTML标签很多,可是实际上常用的却就那么十几二十个,很多标签的功能渐渐的被大家忽略了.然后,如果在适当的时候,用一用,还是能在一定程序上给我们的页面设计带来一点小小的方便的.下面这些HTML标签基本上包含了所有现有的标签,花几分钟,一一浏览一下,或许还会小有收获:   :注释标签用来在源文档中插入注释   :告知浏览器文档使用哪种 HTML 或 XHTML 规范   :定义锚,