设计模式运用在程序设计中已经很多年了,它最早被整理在Erich Gamma、Richard Hlem、Ralph Johnson和Jhon Vlissides(绰号四人帮(the Gang of Four简称Gof) )合著的一本书中。现在已经被应用到各种各样的编程语言,最大的魅力在于在各种编程语言中表现都是一样的,只是语法略有不同。例如把Java的实现模式转换到c很容易。
JavaScript是一门特别灵活的语言,早些年被认为是玩具式的语言,只能做一点为网页涂脂抹粉的小差事。项目工程也不是很大,更无从说起设计模式在Javascript的应用,但随着Nodejs 以及html5和web2.0的兴起,JavaScript本身变的越来越受重视。但是很多本该有的东西JavaScript都有,并没有作为正式的部分。这些年来人们利用自己对计算机编程的思想,利用了很多晦涩的技巧实现了很多JavaScript设计者都未曾预计到的任务,比如各种设计模式的实现,以及面向对象编程等。
设计模式(Design pattern)是一套被反复使用、思想成熟、经过分类和无数实战设计经验的总结的。使用设计模式是为了让系统代码可重用、可扩展、可解耦、更容易被人理解且能保证代码可靠性。设计模式使代码开发真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。只有夯实地基搭好结构,才能盖好坚壮的大楼。也是我们迈向高级开发人员必经的一步。
设计原则:
设计模式存在根本原因是为了代码复用,增加可维护性。设计模式有如下原则:
【开闭原则】对扩展开放,对修改关闭。
【里氏转换原则】子类继承父类,单独掉完全可以运。
【依赖倒转原则】引用一个对象,如果这个对象有底层类型,直接引用底层。
【接口隔离原则】每一个接口应该是一种角色。
【合成/聚合复用原则】新的对象应使用一些已有的对象,使之成为新对象的一部分。
【迪米特原则】一个对象应对其他对象有尽可能少得了解。