在不同领域和架构中花费多年的分析、设计和编程之后
,您可能会遇到
尚未作为模式(分析、设计或架构)发布的“模式”或良好实践。
虽然你以前做过很多次,但它没有名字。
对来自 SO 社区的模式感兴趣。
在不同领域和架构中花费多年的分析、设计和编程之后
,您可能会遇到
尚未作为模式(分析、设计或架构)发布的“模式”或良好实践。
虽然你以前做过很多次,但它没有名字。
对来自 SO 社区的模式感兴趣。
我曾经认为是我自己的那些,即“我发明了它们”,结果证明是 20 年前“发明的”。我数不清有多少次我意识到我正在使用一种已经众所周知的设计模式,而我并不知道它。
这些是多年来试图解决相同问题的结果。我想除非有人“发现”一个新的问题域,否则你不太可能看到新的模式。
也许在未来,新的编程范式或技术将有助于发现解决相同老问题的新方法。
我自己没有想出任何新模式,但发现新模式的最佳方法是了解所有现有模式。这是我最喜欢的设计模式网站之一。101 种设计模式。特别要注意反模式。
不是真正的新模式,但我经常使用工厂模式和策略模式的组合。这可以防止工厂有 switch 语句,并且您可以使用新的“工厂策略”配置您的工厂。我不确定这个模式是否有名字。如果有人能告诉我,我将不胜感激。
不久前我在博客上写过这个:http ://www.herrodius.com/blog/136
我认为几乎所有东西都被发明了不止一次,但是我一直使用的两种模式,但没有看到其他人使用我认为他们应该做的那么多:
不可复制的对象- 问题域中的大多数对象(例如:BankAccount、Person、Transaction)不应是可复制的,这与实现域中的对象(例如:字符串、数组、整数)不同。因此,我使用语言特性使此类业务领域对象不可复制。
拥有对象- 诸如 BankAccount 之类的对象拥有其事务。当拥有对象被销毁时,它管理这些拥有对象的销毁。这种模式几乎不需要使用智能指针。