程序架构
来源:互联网 发布:大数据安全怎么做 编辑:程序博客网 时间:2024/05/16 05:43
之所以有多种程序设计的思想,就是从不同的角度来思考如何应对变化点,如何做到代码的封闭性
结构化的思想
基于对象的思想
面向对象的思想
基于接口的思想
基于模板的静态的面向对象的思想
面向方面的思想
函数式的思想
代码之间存在的关系,被称为架构
因此,小到函数间,大到模块间均存在架构。架构是有层次的
函数之间、类之间、模块之间、子系统之间都存在着各种关系
个理想的架构:当变化到达时,当用户要求增加新功能时,只需要增加新代码而不用改老代码
当进行架构设计时,如何决策?
首先根据经验,判断可能的变化点
把这些变化点按照优先级排序,并赋予权重
设计架构决策时,即判断该架构是否能容纳上述变化点;比较多个架构时,即比较各自容纳的变化点
优先容纳优先级高的、权重大的变化点
什么是写得好的程序?
代码规范
缩进、各种命名等等
执行效率高
8020原则
商业产品往往都使用成熟的技术
算法研究多年,常见的算法问题基本都有成熟的解决方案
更多的工作是使用已有算法,或进行适应性改造
架构好,能容纳变化点
变化是软件开发的常态
设计每个函数、结构体、类、模块、系统时,都要考虑容纳变化点,都要考虑架构——每个程序员都跑不掉
继承是一种强耦合的关系,耦合于基类的接口、耦合于基类的实现
另一种说法:架构设计就是一个解耦的过程
语言的学习不仅仅是语法的学习,最主要的是其背后蕴藏的程序设计思想、软件架构思想的学习
基于对象的的程序设计思想通常是不能封装变化点的。
面向对象的程序设计思想:
{
将一个函数定义成虚函数,意图显而易见,即让派生类重写这个虚函数。
继承关系将会使派生类耦合于基类的接口、耦合于基类的实现,如果基类的实现是变化点,就没办法封装了。}
基于接口的程序设计思想:
- 程序架构
- 程序架构
- 程序架构(一)
- 程序模块架构图
- Android 程序工程架构
- 了解iphone程序架构
- MSP430常用程序架构
- opencl程序架构
- s3c2440触摸屏程序架构
- VB程序架构分析
- C#程序架构
- 程序架构思想
- 架构C#WebService程序
- C语言程序架构
- MSP430常用程序架构
- 程序架构过渡资料
- 程序三层架构
- 程序人生--架构师
- halcon例程学习笔记(7)---检测漏焊board.hdev
- poj 2739 Sum of Consecutive Prime Numbers【素数筛】
- CXF + Spring 开发 Webservices
- sqlplus 连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0
- [OGRE]基础教程来四发:来谈一谈地形系统
- 程序架构
- Photoshop脚本编程简介
- My97DatePicker学习总结
- oracle 记录
- rails acts_as_nested_set
- CFNetwork 编程指南(与流的相关操作)
- 函数型计算器(可实现多种函数运算)
- Sybase触发器
- shared_from_this