【发布时间】:2017-03-14 23:28:24
【问题描述】:
我正在尝试学习如何创建interface。我读过不同的文章,似乎缺少一些基本概念。
我想创建一个类,当它完成某事时,它会通知所有监听类它已经完成。例如,我想在我的MainActivity 中实例化一个版本的MySingletonClass。让MySingletonClass 从MainActivity 做一些事情,然后在完成后,调用MainActivity 中已覆盖的someMethod 到
但是当我创建我的界面时,我得到了错误:
类是公共的,应该在一个名为 filename.java 的文件中声明
这是屏幕上的错误:
这是我的代码:
package com.mycompany.myapplication;
public interface MySingletonInterface {
void someMethod();
}
public class MySingletonClass {
private static MySingletonClass ourInstance = new MySingletonClass();
private MySingletonInterface msi;
public static MySingletonClass getInstance() {
return ourInstance;
}
private MySingletonClass() {
}
public void doSomething(){
msi.someMethod();
}
}
我应该这样做吗?有更好的最佳实践吗?我又在学习 java/android。
我来自 iOS 背景,在 iOS 中我们有所谓的委托模式,这是一个类通知另一个类它已经完成某事的一种方式。 Java中有类似的东西吗?
【问题讨论】:
-
错误信息很清楚。
MySingletonInterface应该在MySingletonInterface.java和MySingletonClass中MySingletonClass.java。 -
要么删除单词
public,要么移动接口和类以分隔适当命名的文件。 -
MySingletonInterface应该是它自己的文件。如果它仅供MySingletonClass使用,那么它确实应该被标记为私有。 -
最好将每个类或接口放在自己的文件中。任何公共类或接口的名称都必须与文件名匹配。
-
那么有接口的目的是什么?我不能只
implementsMySingletonClass 吗?
标签: java android class interface singleton