Как и какие идиомы и паттерны можно (и лучше) применять?

Здравствуйте. Писал я проги для себя ну и так по мелочи, для абы кого, да и проги абы как, не задумываясь о том как какие идиомы (паттерны) можно применять, так получилось что узнал я значит про все и теперь сижу и ломаю голову как все это лучше сделать.

Вот к примеру решил я написать класс Service(создание объектов и предоставление доступа к методам get send) хотел сделать Паттерн Factory Method , для управления сетевыми соединениями (Tcp, serial, ну и тд.) после установки соединения от них нужны методы get и send, с этим понятно, а вот контроль создания Tcp можно отдать Service но так получилось что Tcp у меня singleton и он уже контролирует сам себя.

Добавлено через 21 час 4 минуты

решил я сильно голову не греть и потихоньку приводить проект в нормальный вид, а там уж что получится ))