Абстрактный класс и интерфейс, вопрос объектно-ориентированного программирования - PullRequest
0 голосов
/ 03 марта 2010

У меня есть подсказка об объектно-ориентированном программировании:

Мне нужен родительский класс HandlerException , который должен определять знак трех методов ( MethodA , MethodB , MethodC ).

Затем у меня есть дочерний класс BusinessHandler , который наследуется от HandlerException и определяет ТОЛЬКО MethodA его родительского класса.

Затем у меня есть дочерний класс DataHandler , который наследуется от HandlerException и определяет ТОЛЬКО MethodC его родительского класса.

Затем у меня есть класс с именем CustomerDAO , который наследуется от DataHandler и использует MethodC , записанный в его родительском классе. (потребляет как: DataHandler.MethodC).

Как видите, это типичная проблема объектно-ориентированного программирования; Мне нужно иметь несколько статических методов ( MethodC ) для прямого доступа к нему без какого-либо экземпляра класса. Родительский класс HandlerException может быть абстрактным? и его 3 метода (A, B и C) могут быть ???? (это мой вопрос, как правильно написать этот родительский класс: абстрактный с абстрактными членами, или виртуальный, или, может быть, интерфейс?)

Надеюсь, вы поняли мой вопрос, и я прояснил это. Заранее спасибо.

Я забыл: я использую C #, и стоит упомянуть: MethodB будет реализован в следующей версии приложения.

1 Ответ

0 голосов
/ 03 марта 2010

Зависит от языка, который вы используете, но похоже, что класс HandlerException будет абстрактным и все три метода будут virtual.

Если класс HandlerException не имеет абсолютно никакой реализации (определяет только эти три метода), то, вероятно, имеет смысл сделать его интерфейсом, а не абстрактным классом.

Кроме того, где реализовано MethodB? Если он не реализован ни одним из этих классов, тогда все классы должны быть абстрактными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...