Como usted no es un programador profesional, le recomendaría mantener la simplicidad. Será mucho más fácil para el programador tomar su código de procedimiento modularizado y hacer que sea OO más tarde, que será para ellos arreglar un programa OO mal escrito. Si no tienes experiencia, es posible crear programas de OO que pueden convertirse en un desastre impuro que no te ayudará a ti ni a quien te persiga.
Creo que su primer instinto, el código "esta cosa-esa cosa" en el primer ejemplo es el camino correcto. Es claro y obvio lo que quieres hacer. No se preocupe demasiado por la eficiencia del código, la claridad es mucho más importante.
Si un segmento de código es demasiado largo, divídalo en trozos pequeños, cada uno con su propia función. Si es demasiado corto, considere usar menos módulos y poner más en línea.
---- Postscript: trampas de diseño OO
Trabajar con éxito con la programación OO puede ser complicado. Incluso hay algunas personas que consideran que todo el modelo tiene fallas. Hay un muy buen libro que utilicé cuando aprendí por primera vez la programación OO llamado Pensamiento en Java (ahora en su cuarta edición). El mismo autor tiene un libro correspondiente para C ++. En realidad, hay otra pregunta sobre los programadores que se enfrentan a dificultades comunes en la programación orientada a objetos .
Algunas trampas son sofisticadas, pero hay muchas maneras de crear problemas de manera muy básica. Por ejemplo, hace un par de años hubo un pasante en mi empresa que escribió la primera versión de un software que heredé e hizo interfaces para todo lo que pudieraAlgún día tendrá múltiples implementaciones. Por supuesto, en el 98% de los casos solo hubo una única implementación, por lo que el código se cargó con interfaces no utilizadas, lo que hizo que la depuración fuera muy molesta porque no puede retroceder a través de una llamada de interfaz, por lo que termina teniendo que hacer un búsqueda de texto para la implementación (aunque ahora uso IntelliJ tenía la función "Mostrar todas las implementaciones", pero en el pasado no tenía eso). La regla aquí es la misma que para la programación de procedimientos: siempre codificar una cosa. Solo cuando tenga dos o más cosas, cree una abstracción.
Un tipo similar de error de diseño se puede encontrar en la API Java Swing. Utilizan un modelo de publicación-suscripción para el sistema de menús Swing. Esto hace que crear y depurar menús en Swing sea una pesadilla completa. La ironía es que es completamente inútil. Prácticamente nunca existe una situación en la que múltiples funciones necesiten "suscribirse" a un clic en el menú. Además, publicar-suscribir fue una falla total porque un sistema de menús normalmente siempre está en uso. No es que las funciones se suscriban y luego se den de baja al azar. El hecho de que los desarrolladores "profesionales" de Sun hayan cometido un error como este simplemente muestra lo fácil que es incluso para los profesionales cometer errores monumentales en el diseño OO.
Soy un desarrollador muy experto con décadas de experiencia en programación OO, pero incluso yo sería el primero en admitir que hay toneladas que no conozco e incluso ahora soy muy cauteloso sobre el uso de una gran cantidad de OO. Solía escuchar largas conferencias de un compañero de trabajo que era un fanático de OO sobre cómo hacer diseños particulares. Realmente sabía lo que estaba haciendo, pero honestamente, me costó entender sus programas porque tenían modelos de diseño tan sofisticados.