Как объединить классы в Java - PullRequest
0 голосов
/ 04 сентября 2011

У меня есть приложение для Android с Activity, Thread и классом для хранения данных.

Я создал абстрактный класс ActivityTemplate, который расширяет класс Activity и реализует некоторые обратные вызовы, например onTouchListener.Это также включает в себя некоторые абстрактные методы.Я создал абстрактный класс (ThreadTemplate), который расширяет класс Thread и включает некоторые абстрактные методы.Я создал абстрактный класс DataTemplate, который содержит некоторые элементы данных и несколько простых методов для управления им.

Я могу создать свое приложение, извлекая три класса, по одному из каждого из приведенных выше шаблонов, но я действительно хочубыть в состоянии свернуть их все в один класс MyTemplate, из которого я могу получить свое приложение.

Сортировка:

public class MyTemplate extends ActivityTemplate, ThreadTemplate, DataTemplate

затем

public class MyApp extends MyTemplate

Нокласс MyTemplate не будет компилироваться, поскольку вы можете расширить только один класс.

Есть мысли или я спрашиваю о невозможном?

1 Ответ

3 голосов
/ 04 сентября 2011

Используйте композицию объекта вместо наследования:

class MyApp {
    private ActivityTemplate activityTemplate;
    private ThreadTemplate threadtemplate;
    private DataTemplate dataTemplate;
}

При использовании наследования всегда задавайте себе вопрос, имеет ли ваш подкласс отношения "is-a" с родителем.В этом случае MyApp является , а не шаблоном.У него есть шаблон.

...