понедельник, 28 июля 2008
Последнее время понял, что слишком много думаю. После окончания учебы появилось много свободного времени, которое я трачу на то, что откладывал ранее на "потом". Т.с., осматриваюсь, ищу себе новое место в жизни. Ищу и думаю, думаю, думаю...
Нарциссистский бредКак-то недавно поглядел я на себя в зеркало и понял, что толстею. Животик уже появляется... и меня это огорчает. Меня вообще всегда огорчало то, что я там видел. Если женщина бы ффтыкала в свое отражение, а нормальный мужчина бы просто занялся собой, то я... просто не смотрел туда. Тоже выход, ага. А вот теперь решил поглядеть.
Да, впервые за мои 22 года с хвостиком, мне действительно нравится мое лицо. Не буду уж заниматься самолюбованием, так что не ждите моего мнения тут.
Мне решительно не нравится все остальное. И да, я знаю, как это можно изменить - надо просто серьозно заняться собой. Надо - я это понимаю.
Понимать-то понимаю, а самому противно. Не знаю я, почему. Хотя не, вру, я знаю, почему - я постоянно себя с кем-то сравниваю. Когда сижу на работе - сравниваю себя с нашими "старичками" и вижу, что не знаю. еще нифига. Когда занимаюсь - с теми, кто уже достиг успехов. Когда учился - было то же самое. И, конечно же, результат зачастую не в мою пользу, что, естесственно, здорово бьет по самолюбию. Знаю, что такая позиция заведомо проигрышная - она приведет только к большему и большему "утапливанию" себя под чужими планками, а ничего не могу с собой поделать.
А ведь я где-то читал об этом, только не помню, где.
Кстати, соматический эффект небольшой заметил - ощущение цепей и кандалов.А кроме дум - читаю книгу про паттерны, которую я уже упоминал. И вот, собственно, первые мысли.
Программистский бредНемного обдумал паттерн Abstract Factory, предложенный в книге. Следуя указаниям авторов, получилось следующее: (заранее пардон за названия классов
)
class AbstractProduct
{
protected:
AbstractProduct() { };
virtual ~AbstractProduct() { };
public:
virtual void DoSomething() = 0;
};
class ProductA : AbstractProduct
{
public:
ProductA() { };
~ProductA() { };
void DoSomething() { /*.....*/ };
};
class ProductB : AbstractProduct
{
public:
ProductB() { };
~ProductB() { };
void DoSomething() { /*.....*/ };
};
// сами фабрики
class AbstractFabric
{
protected:
AbstractFabric() { }
virtual ~AbstractFabric() { }
public:
virtual void* CreateA() = 0;
virtual void* CreateB() = 0;
};
class FabricA : AbstractFabric
{
public:
FabricA() { }
~FabricA() { }
ProductA* CreateA() { return new ProductA(); }
ProductB* CreateB() { return new ProductB(); }
};
class FabricB : AbstractFabric
{
public:
FabricB() { }
~FabricB() { }
ProductA* CreateA() { return new ProductA(); }
ProductB* CreateB() { return new ProductB(); }
};
Возникла мысль - а нафига, собственно, нужны кучи методов для создания объектов? Имхо, тут, по возможности, лучше воспользоваться шаблонами и конструировать объекты уже с ними:
// классы-продукты те же
class WonderfulFactoryA
{
public:
WonderfulFactoryA() { };
~WonderfulFactoryA() { };
template c* Create()
{ return new c(); }
};
// создание объектов будет таким:
WonderfulFactoryA factory;
ProductA *ptrA = factory.Create ();
Имхо, этот подход хорош, когда требуется создавать кучу разных по типу, но одинаковых по инициализации классов, имеющих схожий интерфейс:
1) не надо плодить кучу почти одинаковых методов создания объектов;
2) нет ограничения на количество создаваемых типов - один и тот же метод можно применять для разных объектов.Ладно, пойду читать или думать дальше. Авось что-то да получится.
PS: При помощи г-на zilder обнаружилось, что дайры повырезали мне все, что было в угловых скобках, по глупости своей восприняв их как тэги. Ввиду ограниченного времени исправлю позже. (спать иду)
@музыка:
God is an astronaut
Это ж теперь каждый отличник-второкурсник знает
ЗЫ: назвались бы чтоль...
lomka21, не сомневаюсь, ага
Г.А.
P.S. Нету у вас поля "Имя", подписался бы
А с критикой согласен.
ЗЫ: Поверьте, этих двух букв вполне достаточно
ЗЗЫ: Не ожидал, что вы меня читаете.