这个问题主要与继承和扩展的工作方式有关。
我目前有以下内容:
public class Client extends BaseClient { ... }和
public class BaseClient extends MinimalisticClient { ... }
它们之间的主要区别是它们持有(从数据库中获取)的参数(数据)的数量。
我要做的是为每个仅包含吸气剂的接口创建一个接口。
因此,它将类似于:
public interface IMinimalisticClient { getters }
public class MinimalisticClient implements IMinimalisticClient { ... }
public interface IBaseClient extends IMinimalisticClient { the extra getters }
public class BaseClient extends MinimalisticClient implements IBaseClient { ... }
public interface IClient extends IBaseClient { the extra extra getters }
public class Client extends BaseClient implements IClient { ... }
以BaseClient为例。 扩展MinimalisticClient时,默认情况下,我将IMinimalisticClient实施到BaseClient中。 但是,然后,我也实现了IBaseClient,它也扩展了IMinimalisticClient。 这可以接受吗? 我在做些完全愚蠢的事情吗?
就像提到的那样,我这样做的方式只是因为该软件可以在廉价的android设备上运行,而且我必须尽可能多地管理内存使用情况。
是; 没关系。
stackoverflow.com/questions/19546357/
旁注:如果必须在接口或实现的前缀之间进行选择,则可以对实现类使用ID。
如果接口层次结构总体上有意义,那么某些类多次继承同一接口就没有问题。 仅当通过反射查询它们时,这才有所不同。
这很好,但是您应该问自己为什么需要接口。 如果您没有该接口的多个实现,那么似乎没有必要将它们放在首位。
我这样做主要是为了确保代码的某些部分无法访问设置程序。拥有权利的同时也被赋予了重大的责任。因此,如果我中风并在某处打电话给塞特犬,我必须保护自己免受愚蠢之苦。
@AlexJeefo多数民众赞成在什么专用和受保护。
是的,但就我而言,我不希望它们完全无法访问,因为我实际上需要在某些特定位置使用公共设置器。可以这样考虑:创建一个新的客户端,将其添加到数据库中。当我显示它时,我不想访问任何设置器。但是,如果要编辑客户端,则需要访问设置器(或创建新的Client对象)。在为Android编程时,我只希望与编辑有关的活动使用具体对象并有权访问设置器。任何其他活动均应通过其界面存储客户端。
@AlexJeefo如果您有理由,那就太好了。不好的是,如果您无缘无故地使代码复杂化。看来您在这里做出了明智的决定,这就是我想指出的所有您应该做的。
是的,可以接受。 由于接口不是父类(并且不能在层次结构中向上移动),因此在实现中具有相同的接口多次乘法是完全可以接受的
感谢您的回答。我刚刚开始实施它。似乎它迫使我再次重写这些方法(BaseClient被强制重写IMinimalisticClient方法,这并不是我真正想要的,因为我想继续使用要扩展的类中已经定义的方法)。有什么办法可以解决这个问题?
没关系,我以前的评论。我只是搞砸了自己。一切都很好。谢谢
但是,当然,接口之间的继承是直接的acyclig图-因此无法在接口之间进行多重继承