Это плохой дизайн? - PullRequest
       27

Это плохой дизайн?

3 голосов
/ 12 февраля 2009

Представьте, что у меня есть интерфейс под названием IVehicle.

Из этого интерфейса я извлекаю несколько конкретных типов, таких как автобус и автомобиль (все могут двигаться, замедляться, выключать двигатель и т. Д.). Мой интерфейс не имеет полей.

Будет ли плохой дизайн иметь один класс с полями (например, максимальная скорость транспортного средства) и использовать его для каждого конкретного типа? Это будет плохой дизайн? Кроме того, если я храню состояние в этом классе (например, использую поля), то должно ли оно быть статическим?

Спасибо

Ответы [ 12 ]

0 голосов
/ 13 февраля 2009

Другой подход и то, как я различаю абстрактные классы и интерфейсы для распространенных сценариев, это:

-Все пользовательское поведение в интерфейсе - общие поля для использования в базовом классе, которые можно использовать и устанавливать по мере необходимости.

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

Есть ли пример этого?

0 голосов
/ 12 февраля 2009

Вы говорите на языке. В C ++, например, нет интерфейсов, но вы можете использовать абстрактные классы, такие как интерфейс.

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