分享
 
 
 

模式

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: |||超大  

转自 http://www.cnblogs.com/daxnet/archive/2009/02/07/1686994.html

很多IT行业的读者,如果有过一些面试经验的,都会被问到一个经典问题:什么是类库?什么是框架?两者有什么关系?我语文不好,要我用一句话去概括这个问题,恐怕也有点难度。就在此多花点笔墨,多写几句吧。

类库首先要谈到面向对象。为什么要面向对象?因为对象与其之间的关系能够客观地描述现实生活中的事物及其之间的关系。现实生活中的事物有如下特点:不同种类的事物,有着不同的属性,也有不同的行为。各种类的事物之间、同种类的事物之间,又多少有些关系。不仅如此,事物与事物之间需要通信,也就是信息交流。显然,传统的面向过程的设计思想无法很好的描述这些现实问题。

为了能够面向对象,我们就把多种事物进行种类抽象,抽象出来的东西形成“类”。各个事物种类之间的关系使用类之间的关系进行表述,这样就形成一张类的关系网络,也就是常说的类库。

常见的类库有:MFC,估计也是大家最熟悉的了;还有VCL,它有两个版本,VCL for C++和VCL for PASCAL的。这两种类库都是非常经典的。此外还有标准C++的STL。在进行软件开发的过程中,或许我们会觉得,即使有着丰富的类库支持,也无法使我们大幅度提高开发效率:我们仍然需要花费大量的精力在基于类库的基础上开发着各种能够重用或者再也无法重用的权限管理模块、实时编译系统、服务器调度策略等等。软件开发过程一度陷入僵局。

框架在讨论什么是“类库”的时候,我们引出了一个棘手的问题,即使有了类库支持,软件开发也不是一件容易的事情。开发出来的模块、系统如果能够重用那还好说,但如果不能重用,那简直就是一堆废铁,软件开发效率没有得到任何改善。

为此,人们针对不同的应用系统,在基于某一类库的基础上,开发出一套特定的框架,框架中包含了应用系统中的“不变因素”,并为“可变因素”留出位置,今后只需要在“可变因素”的位置上部署功能模块,就可以实现不同的应用系统需求。

举例来说,对于图书管理系统、门市销售系统这些小型MIS系统而言,虽然服务的业务领域不同,业务流程也有很大区别,但是,这些系统都需要有用户管理、权限设置、报表输出、查询界面等基础模块。假如有一套框架能够提供这部分功能,那么在进行进一步的系统开发时,就可以大大提高开发效率。

由此可见,框架是一种半成品,也可以看成是软件核心实体(业务实体)的运行环境,它为软件系统提供了各种服务,脱离业务实体而独立存在的框架是无法独立运行的,一点意义都没有。

常见的框架有:.NET Framework、基于.NET Framework上的DotNetNuke、NHibernate、NUnit,基于NHibernate上的Castle ActiveRecord、Microsoft Dynamics AX ERP系统、各种操作系统等。

日常生活中,框架也无处不在,最典型的就是我们平常玩的游戏机,它本身就是一个框架,没有安插游戏卡或者游戏光盘的时候,一点意义都没有,它为游戏提供了运行环境,不同的游戏卡带中包含了不同的游戏内容

模式模式的范围很大。模式分为设计模式、体系结构模式和惯用法[POSA1]。正如唐俊所说,模式是实践经验的总结,也是一种设计思想的表述形式。在对待模式的态度上,我认为我们不应该抱着学习的态度,而应该抱着“了解”的态度。因为它是经验的总结,不是靠读书学习就能得到的东西。“在做软件设计的时候,每个人都想使用某种模式来提高软件的韧度,却不是每个人都知道,在他的设计中,已经采用了这种模式”,谈不谈模式其实都无所谓,只要你能说出你所设计的系统到底好在什么地方。

模式贯穿于类库中,更多的是设计模式,例如,其中的模版方法(Template Method)模式应用非常广泛。模式贯穿于框架中,更多的是体系结构模式,例如分层模式、Broker模式等。模式为设计人员解决现实问题提供了经验参考,它更不可能是可以直接拿来使用的代码。有时候,解决某个问题需要多种模式的配合,比如在实现ORM时,分层、桥、虚代理、模版方法等各种模式都会被涉及到。

模式贯穿于各行各业,建筑有建筑模式、软件设计有设计模式、体系结构模式,商业运作有商业模式、盈利模式。我们的确应该正视模式的重要作用,而不要将其当作是一种炫耀自己的手段。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有