设计模式

设计模式

目前我们常说的设计模式,来源于 Erich Gamma、 Richard Helm、 Ralph Johnson 和 John Vlissides(Gang of Four) 编著的《设计模式:可复用面向对象软件的基础》,该书提出了23种软件设计模式(Design Pattern),作为面向对象软件设计的最佳实践,广为人知。

23种设计模式如下:

创建型模式:用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”

– 单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式。

结构型模式:用于描述如何将类或对象按某种布局组成更大的结构

– 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

行为型模式:用于描述类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,以及怎样分配职责

– 模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。

阅读更多

编程范式

函数式编程

函数式编程(Functional programming)或称函数程序设计,又称泛函编程,是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数编程语言最重要的基础是λ演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。

函数式编程优点:

  1. 没有并发编程的问题,是多线程安全的
  2. 函数式编程的表达方式更加符合人类日常生活中的语法,代码可读性更强,实现同样的功能函数式编程所需要的代码比面向对象编程要少很多,代码更加简洁明晰

函数式编程缺点:

  1. 所有的变量在程序运行期间都是一直存在的,资源利用率低
  2. 大型项目中工程化不足,使得代码易读性降低

阅读更多