![9ae6c7d9dae0dfd73c8b7185a4e1e1c7.png](https://i-blog.csdnimg.cn/blog_migrate/e093da60967d12a54b207706f7c6f2f4.jpeg)
1 elm语言设计模式的特点
1.1 面向对象设计模式的特点
每种编程语言都有其独特的语法和优缺点,从而导致与众不同的设计模式和固定架构。面向对象编程因其竭力接近和模拟现实世界的多态和继承,导致面向对象产生了工厂架构等多种设计模式。这些设计的多样性,对于面向对象编程的老手来说,条条大路通罗马,采用那种设计模式都无碍于其实现最终的目标。而对于新手而言,众多面向对象的设计模式令其眼花缭乱无所适从。因此,区别不在于采取的设计模式优劣之分,而在于对编程基础和编程艺术的理解深度。
1.2 函数式编程设计模式的特点
面向对象设计模式众多,那么函数式编程的设计模式又如何呢?
函数式编程强调功能的抽象、代码的简洁、可读性以及可以重复利用的特点。特别是柯里化(curry)后的功能函数嵌套,可以堆积木般产生许多创造力和生产力。因此函数式编程的设计模式遵循这样一个原则:凡有利于引导开发者在实现目标的过程中,不知不觉把功能进一步抽象成为模块函数,在实现目的的同时也完成模块的构建,就是好的设计模式。有点象生产汽车的智能化工厂,在组装出一辆高质量的汽车同时,也完成了组装线的设计生产,这就是函数式编程的设计模式。
要实现引导的效果,必定不能就面向对象编程的随心所欲:万物皆对象,见天地人是对象,见蛇虫鼠蚁也是对象,分分钟建个类,父类子类继承、方法属性引用,创造出自己的世界,甚至不管这个世界是真实世界的反映,还是无关现实。
函数式编程的模式天生是严谨固定的,因为函数式编程的基础起源是数学中的范畴学,而数学是严谨可推理的。一个功能模块的抽象必然是经过数学分析推敲后的提炼,而并非文学想象中的发散性思维。
![b9d85be03cd6728e16b2084891516764.png](https://i-blog.csdnimg.cn/blog_migrate/959eeb4f63e1d15b45dfc51c087e543a.jpeg)