前言
本文主要介绍面向对象(OO)程序设计,以维基百科的解释:面向对象程序设计(英语:Object-oriented programming,缩写:OOP),指一种程序设计范型,同时也是一种程序开发的方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
简略来说,面向对象程序设计,指采用了面向对象的方法来进行程序设计。设计指一种把计划、规划、设想通过视觉传达出来的活动过程,它是一种创造性,积累性,实践性的工作。提笔写设计的文章是很有压力的,它不像深入一个知识点一样让人容易有的放矢,一千个读者心中有一千个哈姆雷特,同样的项目两个人来做架构肯定不一样。包括我,每几年对设计都会有一些不同的看法,回头来看自己的代码也总会挑出很多不足,世界是不完美的,设计却希望尽求完美,闲话不说,来进入本文的正题,看看从何谈起。
面向过程程序设计
面向过程程序设计不是面向对象程序设计的前提,从面向过程谈起主要是因为自面向对象(OO)程序设计一提出,就有太多的两者对比。在这样的对比中,面向过程被形容成老化,腐朽,僵硬的设计模式,它自上而下,按照功能逐渐细化,实现快速但面对变化时束手无策。相对而言面向对象具有封装性,重用性,扩展性等一系列优点,言而总之:“还面向过程??你out了,来面向对象吧。。。”
C语言是面向过程的代表,它在1972年由贝尔实验室的D.M.Ritchie提出,在Unix系统中大放异彩,直至今天在系统软件,图形动画,嵌入开发等众多领域中还保持着旺盛的生命力。程序设计这个概念,伴随着程序开发被提出,最简略的被描述为 程序设计=数据结构+算法,通俗一点的说程序设计指的是设计、编制、调试程序的方法和过程。人是善于思考总结的,在漫长的面向过程的程序开发中,一些设计原则被提出,用以更好的指导设计:
- 模块原则:使用简单的接口拼合简单的部件。
- 清晰原则:清晰胜于技巧。
- 组合原则:设计时考虑拼接组合。
- 分离原则:策略同机制分离,接口同引擎分离。
- 简洁原则:设计要简洁,复杂度能低则低。
- 透明性原则:设计要可见,以便审查和调试。
- 健壮原则:健壮源于透明和简洁。
- 优化原则:雕琢之前先要有原型,跑之前先学会走,不要过早优化。
- 扩展原则:设计着眼于未来,未来总比预想快。