【发布时间】:2009-06-18 22:40:25
【问题描述】:
在子系统设计中,我有时会看到软件设计有一个只有一个功能的高级类:它将使用该类的客户端的调用路由到客户端想要使用的另一个特定类。但是,它本身没有任何功能。以这种情况为例:
假设保龄球馆子系统中有五个类别:球道、球道、保龄球、控制台和得分。每当子系统外部的客户端想要向用户显示任何数据时,它只会与控制台(路由器)通信,控制台会调用它所拥有的任何类来获取客户端请求的数据(例如分数:客户端调用控制台用getScore(),调用Lane的getScore(),调用Bowler的getScore())。
我知道这是一个糟糕的设计决定,但我想听听真实世界的示例,这些示例说明您发现使用此路由器类(也可以称为“中间人”)的后果。随着您正在开发的系统不断发展,您遇到了哪些问题?您会提出什么论据来说服软件设计人员避免使用路由器类?
【问题讨论】:
-
这通常被称为“前端控制器”设计模式。见martinfowler.com/eaaCatalog/frontController.html。
标签: oop