如何在多个项目中重用单个类,并对功能进行微小修改?

时间:2011-06-01 16:56:42

标签: android

我有一个公共库,我在其中放置了在多个Android项目之间使用的类。但是,现在我遇到了一种情况,我必须在一个项目中对类的功能进行微小的更改。我应该如何组织课程,记住代码的易读性和未来扩展的可能性?

我应该

  1. 使用子项目特有的修改(MyClassSub扩展MyClass)扩展类(MyClass)?如果我在库类中引用了MyClass,但是应该调用这个特殊的子项目MyClassSub呢?
  2. 是否在类文件中为每个特殊部分切换OR if子句?然后将一些变量传递给类?
  3. 其他一些选择?
  4. 这可能是一个微不足道的问题,但我对java很新,并且无法弄明白。

3 个答案:

答案 0 :(得分:2)

肯定是1。

创建一个包含基类的库(jar),然后在需要其基本功能的项目中使用该jar。每个项目都应提供扩展基础的专业类。

答案 1 :(得分:1)

如果新功能特定于一个项目,我会避免将功能放在库中。使用子类或替换类。如果稍后您发现此扩展行为可以更广泛地使用,则可以将其迁移到库(可能创建库的整个新版本,与Java API发展的方式非常相似。)

答案 2 :(得分:0)

不幸的是答案是“这取决于”。

具体来说,应该设计一个类层次结构,使得基类的行为适用于该类的所有子类。查看这个的一种方法是说子类可以扩展基类的行为。推论是子类不应该限制基类的行为。所以Square不是矩形。

除非基类是专门为继承而设计的,否则还要考虑“赞成组合而不是继承”,因为对基类的更改可能会破坏子类。

玩得开心!