2013-01-15 25 views
3

我已阅读“设计模式”一书中的四人帮,该框架影响应用程序的整体架构。现在我知道例如使用.NET时,您需要从System.Windows.Form继承来创建表单(虽然我认为我在这里有一个很大的误解,)。但任何人都可以使用任何框架在代码中描述框架如何影响应用程序体系结构?框架如何影响应用程序的结构?

回答

1

大约有话题了一些有趣的笔记Wikipedia

软件框架由冻点和热点组成。冻结 斑点定义了软件系统的整体架构(...)。 这些在 应用程序框架的任何实例化中保持不变(冻结)。热点代表那些使用框架的程序员添加他们自己的代码(...)的部分。

据此,您的应用程序可以由您正在使用的框架来定义。例如,在使用Struts框架的Java World中,意味着您使用的是MVC architecture,或者使用Spring Framework强制您应用Dependency Injection Pattern。如果软件架构是由软件模式定义的,那么一些框架是预先构建的模式供您使用。另一方面,没有任何软件应用程序仅由Patterns/Frameworks制作,而Hot Spots是有用的:它们是Software Frameworks提供的扩展/使用框架功能并根据你的要求和领域。

例如,假设您正在使用Spring MVC Framework构建Web应用程序。在项目中配置Framework之后,您的应用程序的每个请求都将被委派给一个名为DispatcherServlet的类。这个类是内置在框架中,你不应该修改它,所以它是一个冻结点的完美例子。 DispatcherServlet将查找您的项目配置并将请求处理委托给ControllerController通常是由程序员制作的类,并负责处理请求。所以你的手工制作的控制器,它是一个热点为你扩展框架。

而DispatcherServlet是Front-Controlller Patttern的实现,并且Controller的使用是典型的MVC应用程序;所以你的应用程序被你正在使用的框架高度定义。

+0

我更关心冻结点如何限制你。 –

+0

我添加了一个例子,使其更加清晰 –

0

在不同框架中传递,存储或评估数据的方法有多种。如果您使用的是Windows窗体应用程序,则可以从项目的任何位置访问您的视图元素,因为它们全部位于计算机的本地内存中,而不在其他位置。

但是,如果您使用的是ASP.NET应用程序,那么消费项目,客户端和服务器的方面会有所不同,而且事情会变得更加复杂。你所做的设计几乎没有什么共同的形式。

如果您使用的是ASP.NET MVC应用程序,则有三个层次:ModelViewController,并且操作分为这些层次,从现在开始,您需要以适合这些层次的方式进行设计。你有MVC提供的数据库表 - 对象关系,可以完全改变设计。

另外编程语言躺在程序下改变设计,因为它可以是功能性的,等

总之面向对象的,这不是一个问题建设性。在使用不同的编程语言和技术之后,你会找出这个问题的答案。

+0

正如我在问题中所解释的那样,我想知道框架如何影响应用程序,我相信它有一个很深的一面,那就是我想知道的。我不希望埃里克伽玛不小心抛出这样的话。无论如何,我认为你误解了我的问题先生,不过谢谢你。 –

1

我必须说一个干净的架构(也称为设计模式)并不依赖于正在使用的框架,工具包或库。体系结构描述了软件系统(层和层)的高层结构,而不是详细描述它是如何实现的。它是一组帮助我们实现安全性,可用性,可扩展性,可靠性,可用性,可用性等特定目标的原则。让我们看一个简单的示例:

模型视图控制器(MVC)是一个软件体系结构(或设计模式)将域的建模,表示和基于用户输入的操作分为三个独立的类。 MVC背后的核心思想是代码的可重用性和关注点的分离。您可以使用多种编程语言或类似ASP.Net MVC,Java的支柱,PHP干燥,CakePHP的框架应用MVC ....

+0

假设您设计了一个框架,您的框架可能会影响您的框架用户如何构建其应用程序的方式? ASP.NET MVC强制你遵循MVC模式,但这并不意味着你不能在ASP.NET中应用MVC,对吧? –

相关问题