суббота, 28 июля 2012 г.

Пример неадекватного интерфейса класса

Читая главу №6 книги МакКоннела про проектирование классов спросил себя "А есть ли у меня  классы где интерфейс не согласованный?" и нашел-таки. Вот:

class MathUtils
{
public:
    static uint32_t alignDown( uint32_t value_, uint32_t factor );
    static uint32_t alignUp( uint32_t value_, uint32_t factor );
    static double   entropy( std::istream& stream, std::streamsize* streamLen );
};

Две функции между собой согласованны,а вот третья подсчет энтропии это из другой оперы. Да, мы привыкли говорить что Теория Графов и Интегралы это все математика, но это разные вещи и мешать в общую кучу не зачем.
Так и тут, не смотря что это "математические примитивы", цели у функций разные! Так сказать "разные разделы математики"

Комментариев нет: