软件开发唯一不变真理:改变
如何优雅的应对变化?以不变应万变?
(sorry, 软件开发唯一不变真理:改变, 木有东西是不变的)
好吧,那就,以不易变应万变!
不易变!
设计原则:
终极原则:
开-闭原则:一个软件实体应当对扩展开放,对修改关闭!
(这个说法是不是太虚了,不好理解啊!来点干货吧!)
设计原则应当是无数前辈们通过无数的实践沉淀下来的一种设计的规律!
而这些“无数的实践”中肯定有一些具有代表性的问题和一些经典的解决方案沉淀下来的。
木有错!这个就是传说中的“设计模式”(点这里)!
因为“四人帮”的关系(点这里)设计模式与面向对象关系太密切了,难道我们C程序员就注定木有对象,就不能设计模式了?非也非也,c程序员也是可以有对象的^^。C程序员也是可以玩设计模式的!
C语言中的设计模式实例。
(翠花,上设计模式!)
策略模式:定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
(虚,依旧这么虚-_-!)
(翠花,上代码!)
qsort的例子告诉我们,qsort支持各种各样的排序需求,是可扩展的(对扩展开放),同时在支持不同种类的排序时不需要修改qsort的内部代码(对修改关闭)。
(讲完,鼓掌!!!)
等等,这一切貌似太熟悉了!
如果你理解unix编程艺术“机制与策略分离”。这其实是相同的东西,只是它们穿上了不同的外衣。想知道unix编程思想与设计模式的更多关系,请关注这里。
(好了,可以鼓掌了!!!)