程序架构

来源:互联网 发布:大数据安全怎么做 编辑:程序博客网 时间:2024/05/16 05:43
之所以有多种程序设计的思想,就是从不同的角度来思考如何应对变化点,如何做到代码的封闭性
结构化的思想
基于对象的思想
面向对象的思想
基于接口的思想
基于模板的静态的面向对象的思想
面向方面的思想
函数式的思想
代码之间存在的关系,被称为架构
因此,小到函数间,大到模块间均存在架构。架构是有层次的
函数之间、类之间、模块之间、子系统之间都存在着各种关系
个理想的架构:当变化到达时,当用户要求增加新功能时,只需要增加新代码而不用改老代码

当进行架构设计时,如何决策?
首先根据经验,判断可能的变化点
把这些变化点按照优先级排序,并赋予权重
设计架构决策时,即判断该架构是否能容纳上述变化点;比较多个架构时,即比较各自容纳的变化点
优先容纳优先级高的、权重大的变化点


什么是写得好的程序?
代码规范
缩进、各种命名等等
执行效率高
8020原则
商业产品往往都使用成熟的技术
算法研究多年,常见的算法问题基本都有成熟的解决方案
更多的工作是使用已有算法,或进行适应性改造
架构好,能容纳变化点
变化是软件开发的常态
设计每个函数、结构体、类、模块、系统时,都要考虑容纳变化点,都要考虑架构——每个程序员都跑不掉
 
继承是一种强耦合的关系,耦合于基类的接口、耦合于基类的实现
另一种说法:架构设计就是一个解耦的过程
 
语言的学习不仅仅是语法的学习,最主要的是其背后蕴藏的程序设计思想、软件架构思想的学习

基于对象的的程序设计思想通常是不能封装变化点的。
面向对象的程序设计思想:
{
将一个函数定义成虚函数,意图显而易见,即让派生类重写这个虚函数。
继承关系将会使派生类耦合于基类的接口、耦合于基类的实现,如果基类的实现是变化点,就没办法封装了。
}
基于接口的程序设计思想:

 
原创粉丝点击