每天学一点,分享我的所得。 坚持持续更新
学习设计模式的目的
将代码的复用,转变为经验的复用。首先明确,项目是做不完的。不断的会有新的需求过来,新的技术出现。工作几年后,我们会发现所作的项目都是相似的,即使公司很大。但作为开发人员,也不可能面面俱到。只是做项目时所用的技术不一样,会使用新技术加快开发效率。从宏观的角度看。我们开发一般都是围绕,相似的项目相似的业务逻辑甚至遇到相似的问题,区别只是使用的技术不一样。如果我们将问题归类后再抽象,找到该类问题的统一解决思路。那么无论以后有什么新技术、新框架(新的东西最终还是会用在项目开发上,项目可能会遇到相似的问题),都可以使用这种思路来解决,只是使用的工具不同但效果是一样的。由于笔者刚开始正式学习设计模式。就拿最易懂的模式-观察者模式来说,比如今天iPhone12发布了,在某东、某宝上,可以预约,等到可以下单的时候,app就会给所有预约的人发通知,如果这期间我不想买了就把预约取消,这样发售时,就不会通知我。以后再出别的购物app也会有这样的需求,技术栈不一样。但这个模式是通用的。这就是经验的复用。
第一章 设计模式入门
作者以一个图文并茂的鸭子游戏为例。反应出软件开发过程中的一个不变的真理——变化。需求时刻都在变,在编码过程中,如何应付这些变化,每加一个需求都需要改代码,有的要改代码的很多地方,每一次修改都有可能造成新的错误。怎样在保证产品稳定性的情况下,快速响应新需求,这应该是软件行业永久的话题。这个问题是抽象的,只能靠编程人员经验思想,合理的组装代码。应对这中问题,前辈们总结出一个设计原则(我认为是所有原则的核心):找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。另一种思考方式,“把变化的部分取出并封装起来,以便以后可以轻易地改动或扩充此部分,而不影响不需要变化的其它部分。”
未完待续