关于设计模式感想

学习模式是一个漫长的过程,应该明确的认识到设计模式的意义在哪里,我们学起来才会更加具有针对性,而不是为了设计模式而设计模式。最近看到一段话感觉挺有意思的:
计算机的强大在于它不知道疲倦,他的计算力持久性和准确性是人类无法抗衡的,它不知道疲倦,你永远不要想着靠蛮力或则逻辑简单重复性的工作战争计算机。但是电脑有缺点吗?有!因为人类创造了计算机,创造力是计算机短时间内的最大短板,虽然谷歌的alphago战胜人类顶尖棋手让人工智能一度引起恐慌。但人类的创造力远不在于围棋,我不敢断言未来计算机创造力永远达不到人类的水平,但是至少在人类自己还没搞清楚自己大脑思维方式的前提下,计算机永远无法超越人类的创造力。
代码是数据结构+算法。我们设计好了结构和运行方式,剩下的交给计算机去解决。反馈给我们结果,人类在一定层次上做着设计的工作,把苦力活交给了计算机去解决,这也是各取所长。
软件产品的架构就是将现实世界的产品需求抽象出一个稳定的元素,然后选择合适的方式组合在一起,变成一个十分稳定的部分。在面向对象设计原则中,依赖倒置就是细节依赖于接口,因为接口是稳定的,我们尽量使用接口交互,而不是具体类,这样的系统是健壮的。因此一个软件的架构师主要负责模块结构的设计,普通的程序员负责完成业务逻辑,这从本质上来讲,架构师就是在做一个偏向设计的工作,普通程序员更多是按照接口相关规则实现了逻辑。架构师是更加偏向创造性的。
设计模式就是在前人的总结上,对于很多常见的场景下常见问题的一种良好的解决方案,设计模式不是公式,也没什么章法,它的目标就是要实现面向对象几大原则而已。因此你如果在实践中作出了某种符合你系统的设计,良好的满足了面相对象设计原则的结构,并且这种场景具有重现的特性,设计模式即存在。设计模式的可能是为了便于大家的交流,因此取了一些设计模式的名字。这是一种十分抽象的东西,因为抽象,所以表达起来十分困难,但是某些情况又不得不拿出实例来展示这种所谓的模式。因此学习设计模式的正确方法是关注设计模式解决的问题和达到的效果,传递的是抽象的思想,不是你的看到的实例。
设计模式的实践往往是出现在重构的过程,由于某些原因早期的系统设计并没有完美的解决系统的扩展性或则导致业务很难正常运转,系统需要重构,这个时候理清业务,重构的过程即优化结构等时候,尽可能满足面向对象设计几大原则,设计模式指导你设计出优秀的架构,而不是为了优秀的架构而死板硬套所谓的“设计模式”。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值