Объясняя, почему классы двойного назначения плохие - PullRequest
1 голос
/ 21 октября 2010

У меня есть класс в системе, в котором его назначение указано как «Это могут быть секунды с полуночи или время с датой». Я пытался объяснить, насколько это плохо, но я не могу понять свою точку зрения. У кого-нибудь есть идеи, как с этим справиться.

http://code -slim-jim.blogspot.com / 2010/10 / объект-анти-patterns.html

Ответы [ 2 ]

1 голос
/ 21 октября 2010

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

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

0 голосов
/ 21 октября 2010

Я не уверен, что это по своей сути неправильно.Я уверен, что с использованием этого класса напрямую является открытым приглашением к ошибкам.Возможно, это класс «реализации», который можно использовать внутренне в качестве основы для двух классов: один представляет время + дату, а другой представляет секунды с полуночи.

Однако большинство , вероятно, , этопросто неправильно

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

Приветствия и hth.,

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