设计模式私家笔记——概述:设计模式是银弹吗?

什么是设计模式?

设计模式OOP(面向对象编程)语言的一些最佳编程实践。这些从大量和长期的软件开发实践和试错中积累出来的通用解决方案(设计模式),往往能够解决软件开发面临的一些通用问题。

设计模式从何而来?

在1994年,Erich Gamma, Richard Helm, Ralph Johnson 和 John Vlissides(也就是如雷贯耳的GOF-Gang of Four)初版了一本名为《设计模式——面向对象软件的可复用元素》(Design Patterns - Elements of Reusable Object-Oriented Software),书中首次提到了软件开发的设计模式概念。

根据《设计模式》作者所说,设计模式主要基于下面两个面向对象设计的原则而产生:
1. 面向接口编程而不是面向实现编程
2. 对象组合优于对象继承


之后在我们的实际的设计模式类图中,仍然会看到继承的出现,但有别于典型的通过继承获得父类的能力,而更多是通过继承来完成实际意义上的组合

设计模式有用吗?

设计模式在软件开发过程中主要有两方面的用途:

便于开发者建立统一的沟通方式
设计模式为特定的场景提供了标准的技术方案。比如,单例模式就是意味着使用一个单独的对象,所有熟悉单例模式的开发者都会采用单例模式,并且对外介绍的时候只要简单说一句,我用的是单例模式就可以了。

最佳实践
设计模式是从长期软件开发中演化而来,为解决特定问题提供了很好的解决方案。学习设计模式能够让出入软件开发的工程师也能够很好的进行软件设计,这个过程简单快速而且相对可靠。

设计模式有哪些类型?

在《设计模式》中总共提到的三种类型的设计模式:创建型、结构型和行为型。三种大类下又分别包含若干具体的设计模式,加起来共23种设计模式。不过,后面如果有机会,我们也会讨论到一种设计模式叫:JavaEE设计模式。

我们通过一个表格来介绍一下这些设计模式:

ae636215f79ca55579fa05f384ae8d6e.png

在后续的章节中,我们将逐个介绍各个具体的设计模式,尤其是他们的应用场景、类图设计、示例代码等。

设计模式是完美的吗?

815c6633c05d5fdd2dd59f5f18eedfb5.png

就好像软件世界中的经典语录——XXX不是银弹,设计模式同样可以套用一下——设计模式不是银弹。

好的设计好代码包括对业务的准确表达,要兼顾未来(这个未来可长可短)的扩展性和维护性,要充分考虑成员的理解水平。所以就像上图表达的一样,哪怕我们用上了各种软件原则、各种设计模式,也未必是是最好的选择。

当然我们不会因此就放弃设计模式的学习和使用,它是一把上好的武器,只有理解了它,在合适的时候,我们才能让它绽放光彩!



笔者原文发布在CSDN,欢迎点击查看:https://blog.csdn.net/mytream/article/details/124580395

也可以关注笔者(请给我一根烟的时间 https://blog.csdn.net/mytream)查看更多个人心得和分享

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值