java - "Synonyms"类

标签 java class synonym

为了举例,我有一个代表 WAV 声音文件的 WAV 类。为了方便起见,我需要添加一个名为 WaveformAudioFile 的类,它具有完全相同的功能。

无论可能的设计/风格问题如何,集成新类的适当方法是什么?通过使用扩展(不添加任何内容)、通过使用通用接口(interface)还是其他东西?

编辑:进一步思考一下,如果要考虑设计,是否有其他方法可以避免冗余代码?我的意思是,如果有多个类,那么编写接口(interface)会很烦人。某种可用于初始化的模式。属性?

最佳答案

1.从设计的角度来看,如果您希望您的类发挥特定作用,那么请选择接口(interface)。

2.如果您的行为不断变化,那么最好将它们封装在抽象类或接口(interface)中,然后扩展或实现它来指定某些功能。

//////////////////////////////////////////已编辑: ///////////////////////////////

我认为您指的是DRY原则(不要重复自己),根据这个原则,最好将您的信息和行为放在单一的敏感位置

但是如果相同功能的不同类的行为不同怎么办?

例如:

Painting 视为具有 paint() 方法

现在

paint()方法可以有描边、滑动、着色等风格。

那么最好将该方法封装到抽象类或接口(interface)中

public interface Paint{

paintDoIt(String style);

}

不是一项令人厌烦的工作,而是关于灵 active 以及能够在不接触太多类且不破坏代码的情况下进行更改的能力

软件工程中只有一件事是不变的,那就是更改

所以我们需要采用它。

关于java - "Synonyms"类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11573423/

相关文章:

lucene - Solr lucene 和 "similar"关键字

Java - WorNet - 同义词检测 (extjwnl 1.8)

java - 在 WordNet 中搜索 Synonym 只给出一个结果

java - 为什么 protected 访问修饰符与 static 一起使用时的工作方式与与非 static 一起使用时的工作方式不同

java - 如何在Java中第二次出现字符之前拆分字符串

java - Java 中的二维数组返回 null 结果

c++ - 首先在 g++ 中从类到命名空间定义

class - F#新关键字。这是为了什么

java - 如何使用 Jersey 发送经过 NTLM 身份验证的发布请求?

c++ - 如何将现有类重构为多态的?