WEB开发网
开发学院软件开发C语言 漫谈面向对象基石之开闭原则(OCP) 阅读

漫谈面向对象基石之开闭原则(OCP)

 2010-09-30 22:45:17 来源:WEB开发网   
核心提示:开闭原则的意思是软件实体应该对扩展开发,对修改关闭(Software entities should be open for extension,but closed for modification),漫谈面向对象基石之开闭原则(OCP),实现开闭原则的途径是抽象,将需要扩展的部分抽象出来,我们可以开发一个专门为手机

开闭原则的意思是软件实体应该对扩展开发,对修改关闭(Software entities should be open for extension,but closed for modification)。实现开闭原则的途径是抽象,将需要扩展的部分抽象出来,并留出扩展接口。打个比方,比如电脑机箱上有usb的插口,这些插口就是可扩展的部分,我们可以在这些usb插口上插上鼠标,键盘,U盘,还可以插上网银的U盾等等。电脑硬件上对于usb接口的这个设计就是一个符合开闭原则的设计。

为什么要遵循开闭原则呢?因为开闭原则可以使软件系统更容易复用,更容易维护,当某个软件实体,不适合了,我可以重新做另外一种实现,并将现有的实现替换掉。比如说统计个税的算法发生了一些变化,我可以在不改变原有代码的情况下,重新实现一个算法将原有的算法替换下来。比如说杀毒软件,在出现一种新的病毒时,开发出一个查杀这种病毒的新模块,可以只开发更新这个查杀模块,而不需要改变原有系统的内容。

开闭原则这么好,如何实现符合开闭原则的软件系统呢?答案是抽象,将可能发生变化的功能点进行抽象,并留出变化的接口。设计模式中很多模式都可以帮我们实现开闭原则,个人的理解设计模式是对抽象用法的一种总结。其实我们在项目已经为开闭原则做了一些工作了,比如说我们进行三层开发,将数据层抽象出来,并定义个数据处理的接口,我们可以通过新开发一个数据层把刚开始将数据存放到sql server中的实现,修改为将数据存放到my sql中的实现;我们将业务逻辑中的代码从UI代码中分离出来,这就为我们复用业务逻辑的代码提供了可能,我们可以开发一个专门为手机使用的UI层出来,当用户用手机访问我们的系统时,智能的切换到手机UI层的代码上去执行。

1 2 3  下一页

Tags:漫谈 面向 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接