谁能给我解释一下什么是软件框架?为什么我们需要一个框架?框架做了什么来简化编程?
当前回答
一个简单的解释是:框架是一个可以围绕它构建应用程序的支架。
A framework generally provides some base functionality which you can use and extend to make more complex applications from, there are frameworks for all sorts of things. Microsofts MVC framework is a good example of this. It provides everything you need to get off the ground building website using the MVC pattern, it handles web requests, routes and the like. All you have to do is implement "Controllers" and provide "Views" which are two constructs defined by the MVC framework. The MVC framework then handles calling your controllers and rendering your views.
也许不是最好的措辞,但我希望它有帮助
其他回答
框架具有您可能需要的一些功能。您可能需要某种具有内置排序机制的数组。或者,您可能需要一个窗口,您想在其中放置一些控件,所有这些都可以在框架中找到。这是一种跨越你自己作品框架的作品。
编辑: 好吧,我将要挖掘你们试图告诉我的东西;)你可能没有注意到“跨越一个框架的工作……”这行之间的信息。 在它越陷越深之前。我试着给它一个地板,希望你优雅地: 我在这里找到了一个很好的解释“库和框架的区别”的问题 http://ifacethoughts.net/2007/06/04/difference-between-a-library-and-a-framework/
I'm very late to answer it. But, I would like to share one example, which I only thought of today. If I told you to cut a piece of paper with dimensions 5m by 5m, then surely you would do that. But suppose I ask you to cut 1000 pieces of paper of the same dimensions. In this case, you won't do the measuring 1000 times; obviously, you would make a frame of 5m by 5m, and then with the help of it you would be able to cut 1000 pieces of paper in less time. So, what you did was make a framework which would do a specific type of task. Instead of performing the same type of task again and again for the same type of applications, you create a framework having all those facilities together in one nice packet, hence providing the abstraction for your application and more importantly many applications.
一个框架帮助我们使用“已经创建的”,一个比喻可以是,
把地球上的物质想象成编程语言,
举个例子,“相机”是一个程序,你决定创建一个笔记本。你不需要每次都重新创建相机,你只需要使用earth框架(例如技术商店)将相机并将其集成到你的笔记本电脑中。
框架为特定的问题领域提供功能/解决方案。 定义来自wiki:
计算机中的一个软件框架 编程,是一种抽象 哪个公共代码提供泛型 功能可以选择性地 由用户代码覆盖或专门化 提供特定的功能。 框架是一种特殊情况 它们是软件库 代码包装的可重用抽象 在定义良好的应用程序中 编程接口(API),然而他们 包含一些关键区别 区分它们的特征 普通的图书馆。
维基百科(软件框架)的摘要(第一个谷歌点击顺便说一下)解释得很好:
A software framework, in computer programming, is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality. Frameworks are a special case of software libraries in that they are reusable abstractions of code wrapped in a well-defined Application programming interface (API), yet they contain some key distinguishing features that separate them from normal libraries. Software frameworks have these distinguishing features that separate them from libraries or normal user applications: inversion of control - In a framework, unlike in libraries or normal user applications, the overall program's flow of control is not dictated by the caller, but by the framework.[1] default behavior - A framework has a default behavior. This default behavior must actually be some useful behavior and not a series of no-ops. extensibility - A framework can be extended by the user usually by selective overriding or specialized by user code providing specific functionality. non-modifiable framework code - The framework code, in general, is not allowed to be modified. Users can extend the framework, but not modify its code.
您可能“需要”它,因为它在开发应用程序时为您提供了一个很好的快捷方式,因为它包含了许多已经编写和测试过的功能。原因与我们使用软件库的原因非常相似。