java设计模式基础之设计原则
设计模式是什么,在学习面向对象的过程中,我们总会不时的接触到模式!正如前人所说设计模式是人们的经验总结!在软件开发中我们总会遇到一些可重复的组件也好,代码段也好,这样就促使我们关注面向对象的可复用技术,而随着可复用技术的发展,一些固定的模式就随之出现!他们就是我们现在学习的所谓设计模式!不管学习什么技术,都要从基础出发,这是我的一贯原则!在看了n个设计模式后,我忽然发现对设计模式我还是不得要领!终于在Java与模式这本书中我看到了我想要的,及一些设计模式所要遵守的原则:
首先是可复用设计的基石:开闭原则,即一个软件实体要对扩展开放,对修改关闭!这句话对于有一些面向对象编程经验的人应该不陌生!不管是什么软件系统,设计者总是希望在不用更改源代码的情况下可以扩展。
第二个原则是:里氏代换原则,这个原则依然是我们众所周知的,其表述是如果一个软件实体使用一个基类的话,那么一定适用其子类,而且他根本察觉不出其基类对象和子类对象的区别。其实学习面向对象语言的人都知道,子类拥有基类的除其私有资源的一些特性!在java中,编译器通常会检查是否符合里氏代换原则!
第三个原则是:依赖倒转或者叫依赖倒置原则,这个原则也许大家听说过,但是由他演变的另一个名词我想大家应该不陌生---IOC(依赖注入),对有人说IOC其实就是DIP。不过我认为ioc应该是一种技术,他是为了实现dip的,dip的表述就是:抽象不应该依赖于细节,细节应该依赖于抽象!或者是“应当依赖于接口编程,不应依赖于实现”。基本上要想实现开闭原则,dip应该是必须途径!至于ioc的设计理念,最近正在学习,我将在另一篇帖子中谈一下我对他的理解!
第四个原则是:接口隔离原则,一个类对另外的一个类的依赖应当建立在最少的接口之上!这也许对于我们难以理解,那么我来换另一种表述:使用多个专门的接口比使用单一的接口要好!我们在编写程序中往往想将接口写的越少越好,于是乎,我们将多个功能的代码,放到同一个接口中!其实这是错误的,我们应当将不同功能分开设立专门的接口,这正是接口隔离原则
其实,以上几个原则,在我们学习面向对象编程的过程中,都有接触。以上几个原则也是设计模式所遵循的原则!理解这些基本理论对于设计模式,或者说编程思想的学习是大有益处的!!!