设计模式的现实生活,非编程“实现”

时间:2011-02-19 06:23:37

标签: design-patterns computer-science

我很难尝试理解一些设计模式,特别是其中一些设计模式之间的差异,例如代理,委托和适配器。由于应该发现设计模式,我试图在非编程世界中发现它们的“实现”。

ATM应该被视为银行的外观还是适配器?议会成员(在理想世界中)是代表模式或代理的一个例子吗?官僚主义是责任链的一个例子吗?股票市场是观察者模式的一个例子吗?什么是战略模式的例子?

请问你能分享一些特定模式的类比吗?我正在寻找尽可能明确的例子。

我的意图是,如果可能的话,找到主流模式的示例,以有助于他们理解和应用于软件开发的形式。

2 个答案:

答案 0 :(得分:2)

软件中的设计模式起源于架构;特别是,A Pattern Language的书“Christopher Alexander”。虽然不直接类似于GOF“设计模式”一书中描述的模式,但亚历山大以同样的精神描述了在现实世界中设计的特定模式。

答案 1 :(得分:2)

有趣的问题。以下是我能想到的:

模板方法:我们遵循的某些仪式将是模板的例子。

工厂:这适用于任何制造部门。它生产商品并封装生产的逻辑。

责任链:几乎所有需要批准的事都属于COR。

策略:航空公司预订政策是战略的真实例子。它因季节而异。

Singleton:我作为一个人只是宇宙中的一个:-)。所以我会成为单身人士。