Здравствуй, Nickita!
SB>> Hу расскажи кратко;) Вот есть объект. Есть его описание SB>> человеческим языком. Выделяем подлежащие и создаем по ним классы. SB>> Выделяем глаголы и создаем методы. Для каждого класса продумываем SB>> интерфейс. Все естественным образом поддерживается компилятором C++
NAS> "Мама мыла раму". NAS> Мыть - это метод мамы или рамы?
class MamaWashBase { public: MamaWashBase(); ~MamaWashBase(); Wash(DirtyObject *); //Отдельно определены объекты (классы), которые //может мыть мама, включая раму private: GetCleaner(); //Чем будем мыть, никого не касается };
class DirtyObjectBase { bool Dirty; //Грязный или нет
public: DirtyObjectBase(); ~DirtyObjectBase(); bool ShowDirtyStatus(); SetDirtyStatus(); ];
В данном случае мама может мыть что-либо, т.е. это ее метод. Hо если тебе угодно, то может быть наоборот ;)
NAS> "Вася выпил три бутылки пива" NAS> выпил - это метод пива, Васи или бутылки? (про магазин и холодильник NAS> для NAS> простоты умолчим)
Да как хочешь. Абстракция все стерпит. Hо лично я предпочитаю применять наиболее естественные решения.
Успехов! До свидания. Sergey.