¿Es práctico implementar un modelo de objetos en un estilo funcional?¿Modelo de objeto en estilo funcional?
Un problema que OOP parece sobresalir en describir modelos de objetos.
Por ejemplo, un HTML DOM es una bestia complicada y con estado que interactúa directamente con la interfaz de usuario y requiere programación de idiomas dinámicos. características de POO tienden a resultar muy útil en muchos sentidos:
- limitaciones de acceso miembros ponen a la interfaz con código no confiable (por ejemplo Javascript) salvo
- funciones y propiedades Accessor hacen que la unión a la interfaz de usuario mucho más conveniente
- No tener que pasar todo el tiempo por el modelo de objetos hace que los métodos sean mucho más simples.
El lado de la interfaz de usuario de la historia podría ser un poco discutible si se está proyectando el modelo a través de MVVM, pero usted todavía está en constante lucha con el estado interno.
Estoy trabajando en F # para este proyecto, así que podría recurrir fácilmente a OOP, pero tengo curiosidad sobre hasta qué punto puedo empujarlo antes de que se vuelva poco práctico. ¿Hay quizás patrones de diseño o algo así?
OCaml, F #, CLOS, Clojure, Haskell y Scala - además de todos los modismos orientados objetados en otros lenguajes como Erlang ...Sí, diría que funciona bastante bien para ellos. OOP no tiene que manipular el estado, es principalmente (en mi opinión) para la organización y DRY. –
Lo he visto hecho con Leskah, y miré el código, pero desafortunadamente está algo más allá de mí en este momento. Además, realmente no tengo idea de cuán funcional puede obtener sin renunciar a DRY, terminar con un código difícil de mantener y/o enloquecer a los autores de plugin/script de terceros. –
DRY es más fácil en lenguajes funcionales que OO ya que en FP es trivial refactorizar cualquier código repetido en una función que toma un parámetro. En OO (o más bien programación de procedimiento) código repetido es preámbulo y postamble que son lo mismo con un bit en el medio que es diferente que ha comenzado a pensar acerca de la clase base o interfaces, en FP no lo hace el bit en el medio se convierte una función como un parámetro. El libro de Tomás tiene excelentes ejemplos de esto: http://www.manning.com/petricek/ – Robert