导读
为什么都说从一个人的代码,就可以看出他的开发经验和编程功底.
一份优雅的代码,和一份架构混乱,层次杂乱的分别摆在你面前,
当你阅读的时候,你会有两种完全不同的感受.优雅的代码阅读起来是那样的舒适.
真正的程序员都领略过程序之美,那些简洁有力的代码,精巧严密的构思,高效直接的解决方案,美得令人窒息。可惜,在日益工业化,商业化和利益驱动的IT行业中,这种美已经是越来越少见的东西。但我想每一个真正热爱编程的人,都渴望欣赏这种美,渴望在思考过程中一次次“Aha!”式的愉悦。感受其中的妙趣所在.
iOS网易公开课,斯坦福大学的白胡子老爷爷一直说object-c是一门优雅的编程语言,我们应该尽量把代码写得优雅一些.大家有时间的话可以看看斯坦福大学公开课上白胡子老爷爷的计算器demo.虽然是一个很简单的程序,但是里面的思想十分值得我们学习.在看之前,你可以先思考思考,要是换做是你来写这个程序,你会怎么设计这个程序
我们不要写完代码就束之高阁,适当地优化代码结构,能够为以后的开发带来许多方便.做过大型项目开发的朋友们肯定深有体会
//当程序书写到一定量的时候,毕竟要进行封装,重构。好处多多啊。
1.代码逻辑结构更加清晰。
2.冗余代码量减少,更加清爽。
3.维护量也较低,符合"对扩展开放,对修改关闭"的软件架构思想等等。
可以看到通过封装使一部分成员充当类与外部的接口,而将其他的成员隐蔽起来,这样就达到了对成员访问权限的合理控制,使不同类之间的相互影响减少到最低限度,进而增强数据的安全性和简化程序的编写工作。
前面两点很好理解,那什么是"对扩展开放,对修改关闭"原则呢?这里简单介绍一下
开闭原则(OCP:Open-Closed Principle)是指在进行面向对象设计(OOD:Object Oriented Design)中,设计类或其他程序单位时,应该遵循:
- 对扩展开放(open)
- 对修改关闭(closed)
的设计原则。
开闭原则是判断面向对象设计是否正确的最基本的原理之一。
根据开闭原则,在设计一个软件系统模块(类,方法)的时候,应该可以在不修改原有的模块(修改关闭)的基础上,能扩展其功能(扩展开放)。
- 扩展开放:某模块的功能是可扩展的,则该模块是扩展开放的。软件系统的功能上的可扩展性要求模块是扩展开放的。
- 修改关闭:某模块被其他模块调用,如果该模块的源代码不允许修改,则该模块修改关闭的。软件系统的功能上的稳定性,持续性要求是修改关闭的。
** 这也是系统设计需要遵循开闭原则的原因:**
1)稳定性。开闭原则要求扩展功能不修改原来的代码,这可以让软件系统在变化中保持稳定。
2)扩展性。开闭原则要求对扩展开放,通过扩展提供新的或改变原有的功能,让软件系统具有灵活的可扩展性。