【发布时间】:2014-02-04 01:16:57
【问题描述】:
我看到 99% 的设计模式示例(策略、工厂、装饰器等)都带有硬编码信息,每个产品都属于不同的类等。但是,在大多数现实生活中的应用程序中,主要是使用数据库,我们知道为每个产品创建一个类或使用硬编码信息是不切实际的。
我知道它们都是例子,但我认为在你从书上学习之后会很痛苦:
为 CheesePizza、VeggiePizza.. 和商店创建类 纽约商店、芝加哥商店
对于工厂模式.. 在现实生活中,所有这些比萨饼和商店都只是数据库中的行。
那么,在这种情况下,使用数据库和设计模式的最佳方法是什么?
- 如果比萨饼和商店在数据库中,则不需要使用设计模式。
- 使用设计模式,而不是为每个 Pizza 或 Store 创建一个类,只需创建一个从数据库读取数据的类实现(例如 DatabasePizza 和 DatabaseStore!)。
我了解设计模式对支付业务的重要性,例如。 (现金、信用卡、比特币……)其中每一种支付类型都有独特的专长,并且业务并未完全在数据库中(信用卡需要打印收据,比特币才能访问网络服务等)。
但我要问的是:在一个真正的比萨餐厅,价格、配料、配料,都根据不同的地方(芝加哥,纽约..)位于数据库中,设计模式的使用真的有必要吗?当大量业务位于数据库时,设计模式的使用自然会减少?
【问题讨论】:
-
您的问题标题通常会引入设计模式,但您实际上只是在询问创建模式。可以使用的设计模式有很多,但在对象持久化领域中可能会少一些。
-
@EricWoodruff 在结构模式(装饰器)和(行为)中我看到了同样的事情。我知道例如付款行为。 (现金、信用卡、比特币等)更改较少,可以硬编码。但是有一些存储在数据库中的行为?那可以在运行时添加吗?我做的事?使用 DB 适应 Strategy Pattern(只有一个 DbBehavior),还是忘记了在这种情况下没用的 Strategy Pattern?
-
你应该看看type object pattern。
标签: database oop design-patterns