Разобрать подмножество класса - вопрос дизайна - PullRequest
0 голосов
/ 09 марта 2011

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

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 09 марта 2011

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

И между прочим, какой у вас язык реализации и целевой платформы?

2 голосов
/ 09 марта 2011

Если ваша единственная причина состоит в том, чтобы избежать «раздувания незапрошенного пуха», то на самом деле нет никаких причин делать то, что вы предлагаете. Скорее всего, язык, который вы используете, передает экземпляры классов по ссылке, поэтому, если вы чувствуете, что объект настолько велик, это может быть проблемой производительности, скорее всего, нет.

Если, однако, вы хотите создать потребляющие методы, которые могут принимать экземпляры разных типов, но иметь схожие свойства, с которыми вы хотите работать в этом методе, тогда посмотрите на исследование "базовых классов" или "интерфейсов"

...