本文共 1251 字,大约阅读时间需要 4 分钟。
感受设计演变过程中所蕴含的大智慧,体会乐与怒的程序人生中值得回味的一幕幕。
设计模式(DesignPattern)是人们经过反复使用,结合代码设计经验总结出来的一套理论。其主要目的是通过封装、继承、多态保证代码的安全性,让人们更容易理解,并且提高代码的可重用性。为此利用设计模式编写的代码真正实现了工程化。就像盖房子一样,设计模式是软件工程的基石脉络。
下面让我来解释大话设计模式中总结的几种设计模式。
这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。
它由三种角色组成:
工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,根据逻辑不同,产生具体的工厂产品。
抽象产品角色:它一般是具体产品继承的父类或者实现的接口。由接口或者抽象类来实现。
具体产品角色:工厂类所创建的对象就是此角色的实例。
策略模式定义算法家族,分别封装起来,让他们之间可以相互替代,让算法的变化不会影响到使用算法的客户。
策略模式是一种定义一个系列算法的方法,使得所遇的算法完成的都是相同的工作,只是实现不同,也就是说:它可以以相同的方式调用所有的算法,保证了各种算法与使用算法类之间的耦合。
含义:就一个类而言,应该仅有一个引起他变化的原因。
软件设计真正要做的许多内容,就是发现对象的职责并把那些职责相互分离。如果你能够发现两个即以上的对象去控制同一个类的变化,那么这个类就有多于一个的责任。
含义:是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。
开放封闭原则下的设计能面对需求的改变求可以保持相对稳定,从而使得系统可以在第一个版本后不断推出新的版本。
实际生活中,无论模块是多么封闭,都会有一些无法对之封闭的变化,既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪些变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离哪些变化。当变化发生时立即采取行动,在最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化。面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。
高层模块不要依赖低层模块;抽象不应该依赖细节,细节应该依赖与抽象。就是要针对接口编程,不要对现实编程。
含义:动态地给一个对象添加一些额外的职能,就增加功能来说,装饰模式比生成子类更为灵活。
用自己的话就是可以将所需的功能按正确的顺序串起来执行。
含义:为其他对象提供一种代理以控制对这个对象的访问。
也就是说,在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。这样代理(媒人)既起到了中介作用(送礼物),又能保护目标对象(求婚人)。
好了,今天就说这么多了,剩下模式的明天再解释。
编程是一门技术,更是一门艺术。
转载地址:http://qihbb.baihongyu.com/