Design patterns 设计模式问题

Design patterns 设计模式问题,design-patterns,Design Patterns,我是一个全新的设计模式。。。下面是我正在遵循的架构…谁能告诉我它的优点和缺点 实体->由具有get/set方法的属性组成 DAL->数据访问层->处理数据库执行 BLL->业务逻辑层 用户界面->用户界面 假设我们有一个带有customerid,customername 因此,实体将为customerid和customername UI->将customerid和customername传递给BLL BLL->是否将验证传递给DAL DAL->将其推送到数据库 我真的不理解有这么多的层…

我是一个全新的设计模式。。。下面是我正在遵循的架构…谁能告诉我它的优点和缺点

  • 实体->由具有get/set方法的属性组成
  • DAL->数据访问层->处理数据库执行
  • BLL->业务逻辑层
  • 用户界面->用户界面
假设我们有一个带有
customerid
customername

因此,实体将为
customerid
customername

  • UI->将
    customerid
    customername
    传递给BLL
  • BLL->是否将验证传递给DAL
  • DAL->将其推送到数据库

我真的不理解有这么多的层…

设计模式并不是由您提到的主题定义的。毫无疑问,它们是解决方案的一部分

设计模式是软件设计中常见问题的通用可重用解决方案。

通常情况下,在您最终开始编写满足以下标准的项目之前,很难概念化为什么设计模式值得付出努力:

  • 适度复杂的应用程序
  • 涉及多个程序员
  • 测试在实现过程中非常重要
  • 应用程序的可扩展性在未来很重要(它需要扩展的范围未知)
  • 应用程序的灵活性也是如此
您还可以查看上面的列表,了解程序员在某些场景下选择设计模式的许多原因。重要的是要认识到,虽然虽然思维模式很酷,而且通常看起来像是出色的解决方案,但您应该认真考虑在您的特定项目中是否需要它。否则,你很容易患上模式狂热症


=D

您提到的主题并没有真正定义设计模式。毫无疑问,它们是解决方案的一部分

设计模式是软件设计中常见问题的通用可重用解决方案。

通常情况下,在您最终开始编写满足以下标准的项目之前,很难概念化为什么设计模式值得付出努力:

  • 适度复杂的应用程序
  • 涉及多个程序员
  • 测试在实现过程中非常重要
  • 应用程序的可扩展性在未来很重要(它需要扩展的范围未知)
  • 应用程序的灵活性也是如此
您还可以查看上面的列表,了解程序员在某些场景下选择设计模式的许多原因。重要的是要认识到,虽然虽然思维模式很酷,而且通常看起来像是出色的解决方案,但您应该认真考虑在您的特定项目中是否需要它。否则,你很容易患上模式狂热症


关于设计模式的一本好书是O'Reilly的“头先设计模式”。这对我帮助很大。它向您展示了良好的设计和关注点分离如何使维护和重用更容易。拥有多个层次的一个缺点是,它需要事先进行更多的规划,但最终却无法弥补。

关于设计模式的一本好书是O'Reilly的“头先设计模式”。这对我帮助很大。它向您展示了良好的设计和关注点分离如何使维护和重用更容易。拥有多个图层的一个缺点是,它需要事先进行更多的规划,但最终需要更多的规划。

您描述的每个图层都有一个单独的角色:

  • UI呈现给用户并允许用户交互
  • BLL验证用户输入和数据的完整性
  • DAL为数据库提供了一致/一致的接口
将数据验证与界面分离有很多好处——例如,安全性,或者在不改变应用程序核心的情况下(从根本上)改变用户界面的可能性。这是模型-视图-控制器设计模式的基本前提之一

将数据库访问与业务逻辑分离允许您更改数据库实现、数据库模式等,而无需同时更改业务逻辑,从而将两者解耦


应用程序中功能不同的部分的解耦允许您独立测试这些部分,并(相对地)独立维护它们,等等。从长远来看,它避免了维护方面的头痛,通常还避免了bug。

您描述的每一层都有一个单独的角色:

  • UI呈现给用户并允许用户交互
  • BLL验证用户输入和数据的完整性
  • DAL为数据库提供了一致/一致的接口
将数据验证与界面分离有很多好处——例如,安全性,或者在不改变应用程序核心的情况下(从根本上)改变用户界面的可能性。这是模型-视图-控制器设计模式的基本前提之一

将数据库访问与业务逻辑分离允许您更改数据库实现、数据库模式等,而无需同时更改业务逻辑,从而将两者解耦

应用程序中功能不同的部分的去耦合允许您独立地测试这些部分,并(相对地)独立地维护它们,等等。从长远来看,它避免了维护方面的头痛,通常还避免了bug