que tienen algún controlador de eventos en una clase de límite que gestiona un mecanismo de persistencia para una transacción genérico dado:¿Cuándo dejas de encapsular?
void MyBoundaryClass::MyEventHandler(...)
{
//retrieve stuff from the UI
//...
//declare and initialize trasaction to persist
SimpleTransaction myTransaction(.../*pass down stuff*/);
//do some other checks
//...
//declare transaction persistor
TransactionPersistor myPersistor(myTransaction, .../*pass down connection to DB and other stuff*/);
//persist transaction
try
{
myPersistor.Persist();
}
catch(...)
{
//handle errors
}
}
¿Sería mejor tener algún tipo de TransactionManager para envolver objetos SimpleTransaction y TransactionPErsistor?
¿Hay alguna regla práctica para comprender si necesito un nivel adicional de encapsulación?
Por el momento la regla de oro que sigo es "si el método se hace demasiado grande, haz algo al respecto". A veces es difícil encontrar el equilibrio correcto entre procedural y orientado a objetos cuando se trata con manejadores de eventos de límite.
¿Alguna opinión?
Saludos
+1 por considerar a la gente (afortunada) que mantendrá sus objetos! –
Consideraciones para su caso específico agregado, según lo solicitado. – VonC
"Consideración de denominación con respecto a la cohesión de una clase" agregada a mi respuesta, según lo solicitado. – VonC