小编use*_*009的帖子

如果两个类扩展不同的类,避免重复代码的最佳方法

我正在开发一个Android项目,我正面临这种情况.

我有2节课:

class A extends B
{

openDoor(){
//impl
}

closeDoor(){
//impl
}

}

class X extends Y{

openDoor(){
//impl
}

closeDoor(){
//impl
}

}
Run Code Online (Sandbox Code Playgroud)

现在,如果你观察到两个类openDoor()和两个常见的方法closeDoor()

什么是避免重复方法的最佳方法?

我的方法

class ContainingDuplicateMethods{

     openDoor(){
    //impl
    }

    closeDoor(){
    //impl
    }

    }
   }
Run Code Online (Sandbox Code Playgroud)

在类中创建ContainingDuplicateMethods对象并调用方法,我们将其称为策略模式,但这是最佳解决方案吗?为什么,因为在大型项目中我们不能遵循这种方法,人们说它不是很好的做法,在这种情况下,我需要遵循什么方法?

请注意,class A and X已经扩展了其他类,我也不想使用静态因为 - 静态成员在程序执行开始时被加载到内存中,并且将在内存中直到程序终止,比如我的代码连续运行数天或数周继续使用静态引用创建许多对象,因此我们可能会耗尽内存.

java android code-duplication

12
推荐指数
2
解决办法
8924
查看次数

Carousel中的ArrayIndexOutOfBoundsException - MessageQueue回调和handleReceiveCallback中的异常

我在我的应用程序中使用轮播.

对于拥有Android 4.2.2且仅在横向模式下的用户,他们报告此问题:

12-19 15:01:56.685: E/InputEventReceiver(7009): Exception dispatching input event.
12-19 15:01:56.685: E/MessageQueue-JNI(7009): Exception in MessageQueue callback: handleReceiveCallback
12-19 15:01:56.695: E/MessageQueue-JNI(7009): java.lang.ArrayIndexOutOfBoundsException: length=12; index=-1
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2076)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at com.digitalaria.gama.carousel.CarouselBehavior.dispatchTouchEvent(CarouselBehavior.java:1768)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
12-19 …
Run Code Online (Sandbox Code Playgroud)

android carousel

8
推荐指数
1
解决办法
2806
查看次数

标签 统计

android ×2

carousel ×1

code-duplication ×1

java ×1