设计模式之---前言

准备总结一下各种设计模式,在总结之前,我想先来聊一聊什么是设计模式?为什么要用设计模式?设计模式有哪些特点和优点?

对于很多新手来说,代码只要能正确运行,可能就万事大吉了。有时候,这么想可以,比如说你自己尝试个什么东西,做个小玩意,A一道题什么的。过去了就过去了,不会再管他了,那自然跑对就行。但我们在做项目时,我们得有工程化思想。那就是我们得明白两个道理,一:我们要与其他人合作,要有团队精神和合作意识。二:我们在满足产品需求的情况下,尽量提高开发效率

关于第一点,非常重要的就是编码的规范。要始终记住我们的代码是写给别人看的,所以一定要注意编码规范。比如说命名规范,缩进,代码风格等待。如果一段业务代码只有你和上帝知道它的意思的话(或许时间久了,只有上帝知道它的意思了),那这段代码肯定很糟糕。第二点,如果要提高开发效率,那就得提高代码的复用性可维护性。一个项目最大的麻烦往往是后期维护,所以可维护性是非常关键的。这个时候,设计模式就派上用场了。

我们先来理清一些概念,什么是设计模式?引用伟大的百度百科上的话说就是:设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。怎么样,设计模式很牛逼吧

那什么是可维护性呢?以活字印刷术举例。比如你要印刷四个字,“我想故乡”,但你发现,换成“我爱故乡”更好,这时你只需换一个字,把"想"字换成“爱”字,这就叫可维护性。就好比软件开发,你要升级软件,只需换几个组件而不需牵一发而动全身地改。还有一些概念,比如,这些字的模板并非用完就不能用,这叫可复用性。对了,这可复用与Crrl-C,Crrl-V可不大一样。若要加字,只需另刻字加入即可,这叫可扩展性。不同的字可以进行多种排列以满足需求(可以横排也可以竖排。。。),这叫灵活性好。

当然,我们所讲的这些设计模式都是基于面向对象的。很多初学者遇到问题就直觉地用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程,这是用计算机的方式去思考,但这样往往也写不出高质量代码,我们得有面向对象的思想。其实就是通过面向对象的封装,继承,多态把程序的耦合度降低。达到低耦合,高内聚的目的。那什么是低耦合,搞内聚呢?高内聚就是一个模块内各个元素彼此结合的紧密程度高,或者说每个模块职责单一。低耦合则是各个模块互相引用较少,耦合性小,不会出现牵一发而动全身的问题。

下面我们来看看UML图:

这聚合和组合是不大一样的,聚合是一种“弱”的拥有关系,而组合是一种“强”的拥有关系。聚合的对象往往可以单独存在,而组合则不行。

下面再说说关联和依赖的区别。这个上两张图大概就明白了。

关联关系

依赖关系

编程门技术,更是门艺术。我们一起来感受这门艺术的魅力所在吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值