Kiedyś już pisałem, że pracuję z kodem w którym jest straszny syf. Wpadłem na pomysł przerobienia kilku klas, ale chciałbym się zapytać czy ten pomysł jest dobry lub jak proponowalibyście to rozwiązać.

Ogólnie mowa będzie o ficzerze, którego zadaniem jest wrzucenie posta na walla za każdym razem gdy nastąpi jakiś event typu zmiana statusu, ceny itd.

Model Wall
Potwór. Jest tutaj swtich na 110 linijek, który sprawdza

switch($this->_eventType)

po czym przechodzi do opdalecia $this->postNazwaEwentuXXX(); Oczywiście jak można się domyślić te metody są w tej samej klasie. Żeby było zabawniej dochodzimy do tego przez
$wallPost = new Wall_Model_Wall;
$wallPost->setEventType('ContactStatusChange');
$wallPost->setEventSubject($this);
$wallPost->save();

W modelu np. Contact czy whatever.

Wpadłem na pomysł, żeby metodę z Walla ogarniczyć do 
```php
$this->_eventSubject->postToWall();

, a tego czterolinijkowca, który jest w tych innych modelach zamienić na
$wallPost = new Wall_Model_Wall;
$wallPost->setEventSubject(
new Realestate_Model_Events_RealestateStatusChange($this)
);
$wallPost->save();

 
Gdzie `Realestate_Model_Events_RealestateStatusChange` to będzie klasa, która implementuje interface 
```php
class Realestate_Model_Events_RealestateStatusChange
    implements BV_Wall_Postable
{

    protected $_model;

    public function __construct($model)
    {
        $this->_model = $model;
    }

    public function postToWall()
    {
        die("post to wall CHAGNE!");
    }
}

Wiem, że nie widząc kodu trochę cięzko to ocenić, ale chodzi mi o zasadę. Nie znam się dobrze na wzorcach, bo dopiero w nich raczkuję ale staram się szukać jak mogę. Proszę o uwagi i pomysły.