什么是设计模式?
【From 百度百科】
设计模式是一种用于代码设计的经验总结。
设计模式的目的?为什么使用设计模式?
HelloWorld是不需要使用设计模式的,设计模式的主要应用场景是在大型应用的构建上,假想一下,在2万行代码中增加功能,如果程序可读性差,代码将难以扩展和优化。
所以,设计模式主要聚焦:
- 构建工程化结构
- 代码的复用性
- 代码的易读性
- 代码的可扩展性
注:
- 不同设计模式适用于不同的场景。
- 设计模式考虑的角度是整个软件体系的结构是否合理,是否稳定,而并非聚焦于单个的功能实现,所以在实际开发过程中,简单的问题或许会因为出于对于全局的优化考虑而复杂化。
- 设计模式并不是完美的,经验可以解决现有问题,但同时也会带来新的问题,场景分类,权衡取舍,才是设计模式的正确打开方式。
学习设计模式之前需要了解的知识
面对对象三大特点:
- 封装:隐藏复杂,暴露简单(隔离变化,保护数据,提高代码重用性)
- 继承:复用现有代码(多态的前提)
- 多态:改写对象行为(提高代码扩展性)
抽象与实例:
【举个栗子】
以吃早餐为例,每天早晨都会吃早餐,但是今天可能喝豆浆吃油条,明天呢吃包子喝粥。
每天早晨都会吃东西(正常情况下),但是每天都不一样。
那么每天早饭的内容就是实例,而每天都要吃早饭的行为或者说习惯称之为抽象。
Conclusion:抽象就是指不变的事物(每天都吃早餐),而实例是指会变化的事物(每天吃的都不一样)。
复用与活字印刷:
活字印刷与复用的思想不谋而合。举个栗子简单描述一下,比如说要印刷一份出师表,按照以往的科技,先在石板上调刻一份出师表然后刷墨,然后用纸印。但是这块石板就只能印出师表了,活字印刷的思想就是把字拆解开来,需要的时候再进行组合。比如说,出师表有738个字,那就先刻500个独立的字(假设有重复)然后排列组合印刷。等下一次,要印离骚了,先把500字中能用的先拿出来,然后刻剩下的字。久而久之,每次印刷只需要排列字的顺序就行了。
在活字印刷中,复用的就是一个个单独的字。