一种软件架构

来源:互联网 发布:淘宝网网页无法访问 编辑:程序博客网 时间:2024/06/05 01:57

我们初入软件,在相当的一段时间内,我们的工作都仅限于在别人的代码的基础上增增减减,,但是永远乐于增增减减的人是不能进步的。我们常说,软件架构是一个很高深的东西,但是,软件大牛们也是我们一样起步的,只是后来人家做出了改变,借用我好朋友泉哥的一句话:再NB的人,也有苦逼的青春。

我的想法,先走一步,错了再说,让我们从苦逼的青春开始吧!

在人力相对充足的软件企业中,项目中可见代码的部分都是业务性质较多,框架类的东西,不可见,不可改,有时候被封装成库,总之,不是你在SVN上那些东西,有时候我们叫这些代码为底层代码。

软件大牛往往为你创建了一个项目模板,你只需要在每个新的项目的增增减减,但若你留心一些,也能将其中原理体会一二。

我曾经在华为对一个东西百思不得其解,程序运行过程竟然需要头文件(.h文件),我当时都怀疑架构是不是自带编译器重新编译,当然我不相信华为有这个实力,拿到底层的代码后,我傻了,方法竟然是把头文件直接分析内容,然后偏移虚函数表,调用虚函数的过程,按我当时的想法,这种作法太下流了。

其实,上一个事情我想说的是,需要你去琢磨,才有明白的可能。

现在步入正题,我介绍一种简单的软件架构。

框架代码:1、父类Application

Application{   Void virtual run()   Virtual ~Application();};


 

2、main函数

main(){   Extern Application* pApp;  pApp->run();   delete pApp;}


 

业务代码:

1、子类Work,一个子类对象

Work work;Application* pApp;Work{   Virtual void run();}


 

框架中的重点之处,

1、run()和析构函数是虚函数(框架己定)

2、继承(代码中定义)

3、一个被其它源文件使用的全局变量。(代码中实现)

4、框架实现了只需要关心子类中run()对业务逻辑的处理正确即可。