Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android中的函数重用_Java_Android_Oop_Multiple Inheritance_Code Reuse - Fatal编程技术网

Java android中的函数重用

Java android中的函数重用,java,android,oop,multiple-inheritance,code-reuse,Java,Android,Oop,Multiple Inheritance,Code Reuse,我有一个本地android应用程序,大约有20个类,用于10项活动 我想在每个活动中重用函数定义。我有一个底部栏,在任何活动中单击它都会触发此功能。既然Java不能有多重继承,我该如何将这个函数复制到我想要的任何地方?创建BasicActivity类并从Activity扩展它,并在其中编写该方法 现在,从BasicActivity扩展应用程序中的每个活动。另一种方法是创建类,该类具有所需的所有函数。对于这样的事情,可以使用单例模式 例如: public final class Singleton

我有一个本地android应用程序,大约有20个类,用于10项活动

我想在每个活动中重用函数定义。我有一个底部栏,在任何活动中单击它都会触发此功能。既然Java不能有多重继承,我该如何将这个函数复制到我想要的任何地方?

创建BasicActivity类并从Activity扩展它,并在其中编写该方法


现在,从BasicActivity扩展应用程序中的每个活动。另一种方法是创建类,该类具有所需的所有函数。对于这样的事情,可以使用单例模式

例如:

public final class SingletonClass{
    private SingletonClass(){}

    private static class InstanceHolder{
        private static final SingletonClass instance=new SingletonClass();
    }

    public static SingletonClass getInstance(){
        return InstanceHolder.instance;
    }

    /*your public non-static methods here*/
}
然后:

SingletonClass singleton=SingletonClass.getInstance();
singleton.someMethod();     

为了在重读代码时更加清晰,基本活动应该是抽象的。问题解决了。还有更好的选择吗?@Jaseem不知道任何细节,不可能说。如果Java支持多重继承,你会如何使用它来解决这个问题?@βɛƨǤʋʋɢ,显而易见的方法是扩展Activity和另一个类,它具有所有必需的函数。@user826788 AFAIK,Android应用程序每个屏幕/视图需要一个活动/类。因此,10项活动是合理的。必须编写用于图像下载、JSON解析、自动填充等的类。@Jaseem您仍然可以实时编辑活动,因此您只需要一个类,尽管这很可能是一种不好的做法。不过,我认为你不应该局限于传统风格。除此之外,你就不能有很多的观点和一个活动吗?我不是完全开玩笑的,所以我的评论在没有解释或警告的情况下被删除了,这是令人沮丧的。取消释放是受欢迎的。@biovamp:IMHO,你的想法正好相反。这是一个泛化的例子。他有几个相关的课程,在所有课程上都有相同的行为。但是,由于他们不是同一个祖先的后代,他有着同样的代码分散在各地。所以,他想推广,并提出一个基类。