为了举例,我有一个代表 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/