设计模式入门--设计模式原则(总纲)
小编是一名.NET程序员,工作了五年有余了。虽然从大二开始接触了设计模式,但总不得其要领。后来学习了设计模式的几大原则。
如果说设计模式是一本内功心法的话,那么设计原则就是这内功心法的总纲啊。大凡练武奇才,学会了总纲,虽然心法不一定学全,有时也能利用总纲悟得要领(奥义)。
单一职责原则:一个类的抽象只有一个动机,具有一个职责。类的单一职责使得一个类就像一个积木一样,更加具有灵活性。
开放-封闭原则:即对模块、类、方法(函数)的修改持封闭意见,对正在运行的线上代码尽量不修改。但可以增加扩展子类、利用方法的多态(重构overload 增加不同参数的同名函数、重写override改变父类方法)、利用面向接口编程的灵活性来实现对扩展的开放。
依赖倒转原则:抽象不依赖于细节,细节依赖于抽象,说白了就是要面向接口编程,大家都定义好契约(接口),但对内部实现缺失封闭的。比如,我们开发的webservice、wcf都是面向接口编程,先定义契约(接口),然后把契约告诉相关合作的人即可。
里氏替换原则:子类可以替换父类进行工作。C#的代码机制也满足这一点的,比如子类虽然可以重写(override)父类的方法,但该父类方法前提要是虚方法。
是迪米特法则:也是最少知识原则,即类与类之间尽量是松散的,松耦合。我理解是一个类尽量不要依赖于另外一个类,比如需要在构造方法里如果需要传入另外一个类的话,不妨通过让另外一个类先引用一个接口(或者继承一个父类),通过传入接口(或者父类)使得这两个类的关系更加松散,因为松散后期可扩展的余地才更加丰富。
以上就是我所了解的几大设计模式原则,希望大家互相学习、交流。