为什么我们需要像Factory,Abstract Factory和Singleton这样的设计模式?为什么我们需要设计模式
5
A
回答
12
设计模式提供了容易识别和使用面向对象解决方案的常见问题。它们本身很容易维护,因为很多人都熟悉它们。这与谷歌的工作方式非常相似。每个人都知道如何谷歌,所以当你得到像“设计模式的目的是什么”的查询时,你可以很快使用这个通用接口来解决问题。
设计模式还解决了关于可用性和可维护性方面的特定编程挑战。拿起Gang of Four book并拥有它。
4
在某些情况下,为了实用性。当你看到一个常见的问题时,你会发现一个通用的解决方案。它发生在建筑,机械,可用性和人类行为上,编程也不例外。
在其他一些情况下,该模式也是处理语言“效率低下”的一种方式,其中“效率低下”的含义非常广泛,而且并不总是一个坏词。例如,在函数是第一类对象的语言中,通常在java中使用的一些模式不那么重要。一些设计模式仅在某些语言中才有意义,而在其他语言中则不可行:Crockford描述了这种语言所特有的Javascript模式,以处理语言的潜在类雷区特性(我必须指出,这是一种真正的很酷的语言,一旦你明白了)。
6
如果问题一遍又一遍地发生,该问题的解决方案已得到有效使用。该解决方案被描述为一种模式。
相关问题
- 1. 为什么我们需要命令设计模式中的“接收器”类
- 2. 生成器设计模式:为什么我们需要一个Director?
- 3. 为什么我们需要在战略设计模式中使用Context类?
- 4. 为什么我们需要设置SONAR_RUNNER_OPTS?
- 5. 为什么我们需要观察者模式?
- 6. 为什么我们需要工厂模式的工厂?
- 7. 存储库模式 - 为什么我们需要接口?
- 8. 模型中有什么?为什么我们需要使用它
- 9. 我们是否还需要迭代器设计模式?
- 10. 我需要一个设计模式吗?
- 11. 为什么我们需要fieldset标签?
- 12. 为什么我们需要RIA?
- 13. 为什么我们需要.htaccess的worpdress?
- 14. 为什么我们需要extern?
- 15. 为什么我们需要9补丁?
- 16. 为什么我们需要在JavaScript
- 17. 我们为什么需要纤维
- 18. 为什么我们需要BeginGetResponse和BeginRead?
- 19. 为什么我们需要TensorFlow tf.Graph?
- 20. 为什么我们需要Bower和Nuget?
- 21. 为什么我们需要ng-click?
- 22. 为什么我们需要`ngDoCheck`
- 23. 为什么我们需要boost :: thread_specific_ptr?
- 24. 为什么我们需要Anaconda 2.7?
- 25. 为什么我们需要mktemp?
- 26. 为什么我们需要ClassMethods和InstanceMethods?
- 27. JSP:为什么我们需要RequestDispatcher?
- 28. 为什么我们需要ioc容器
- 29. 为什么我们需要RBAC许可?
- 30. 为什么我们需要scalaz.stream迭代?
出于同样的原因,我们使用食谱来烘烤饼干。它们是用于实现已知结果的可重复过程。如果没有我们的cookie配方,每批都将是一项全新的发明 - 软件中的设计模式也是如此。 – slugster
@slugster我希望我能给你的意见更多upvotes –
@slugster我们应该称他们烘烤饼干的算法? – everlasto