Соглашение об именах для класса фильтра? - PullRequest
0 голосов
/ 01 февраля 2012

Интересно, как это можно назвать лучше?

У меня есть класс Filter (он в Ruby, но язык не так уж важен), который фильтрует объекты так:

class Filter
    def initialize(items)
        @items = items
    end

    def filter
        #returns filtered items
    end
end

При использовании это выглядит так:

items = Filter.filter

Мне это не нравится. У кого-нибудь есть еще лучше конструкция для этого?

1 Ответ

1 голос
/ 01 февраля 2012

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

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

...