Маленький объект + много функций vs большой объект
От: SergH Россия  
Дата: 03.05.05 12:22
Оценка:
Привет.

Ситуация такая: есть некоторый системный ресурс, типа хендл (RPC_BINDING_HANDLE, если кого-то интерисует) хочется вокруг него сделать обёртку. Особенность — вокрут этого хендла можно накрутить довольно сложные операции (искать/биндиться к серверу можно по-разному)

Вижу два варианта:
— маленький объект с перегруженными опреаторами приведения типа, полезные действия выполняет только в деструкторе и, возможно, при копировании. Операции реализованы как функции (по желанию — статические методы). Примерноь так (кстати, язык — C++):

class CRpcBindingHandleSimpleWrapper
{
public:
    ...
    handle_t* operator& () {return &m_h;}
    ...
private:

    handle_t m_h;
};

RPC_STATUS veryComplexBind(...., handle_t* ph);


— объект, для которого все эти операции — методы

class CRpcBindingHandleWrapper
{
public:
    ...
    RPC_STATUS veryComplexBind(....,);
    ...
private:

    handle_t m_h;
};


Плюсы первого подхода:
— такой объект можно использовать и со стандартными функциями.
— с моими функциями можно будет использовать стандартные хендлы.

Минусы:
— менее естественно выглядит

Пока сделал второй. Какие есть мнения?
Делай что должно, и будь что будет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.