java - 实现还是扩展?

标签 java object-oriented-analysis

假设我有一个接口(interface) C 和一个实现它的类 A。

现在假设我想将 A 的实现更改为 C 中的所有函数(除了一个),使用类 B。我应该扩展 A 并覆盖 C 还是应该将 C 实现为一个新的独立类?

假设一些电话公司想要实现他们的基本接口(interface) Phone,并且他们已经有了 OldPhone 的一些旧实现,他们希望保留其所有功能:调用电话、挂断电话、发送短信 - 但他们不这样做不想改变所有这些,但他们确实想要其他新功能来制造他们的新智能手机 - 他们应该扩展 OldPhone 还是创建一个新类?

我想知道什么时候应该扩展类以及什么时候应该从一开始就实现接口(interface) - 一方面我不想复制代码,但另一方面有时是类型,即使它们都是一个A,概念上不同。

最佳答案

如果您有想要重用的代码,那么扩展是更好的选择。

但是问问自己:新手机是旧手机的更好版本还是功能相似的全新手机?

  • 第一种情况:扩展。
  • 在第二个抽象中,您要寻找的是:提取共有的函数并将它们放入一个抽象类中,两个类都将扩展该抽象类。

关于java - 实现还是扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17194256/

相关文章:

java android 非常大的xml解析

java - 如何在 Spring MVC 中基于 Profile 动态加载 Application.properties 文件?

java - OpenGL 在面向对象模型中将 glVertexAttribPointer 放在哪里?

java - 方法重载是一种多态性吗?

C++软件架构与设计

java - sql查询-使用AND

java - 如何将 Activity 的布局背景宽度设置为 100%

java - 在java中创建Statement和ResultSet的最佳方法是什么

java - 如何调用派生类(子类)的重写方法?

c# - 如何在不使用 IF 条件的情况下执行此操作