一、为什么需要有设计模式?
我们日常居住的房子,整体的结构从纵向看大概就是地基-楼层-封顶,从平面看,一般就是房间-客厅-阳台。那么,在房子打地基时,施工方会考虑,打桩的深浅,柱子的定位与数量等。而再往深层次看,施工方还要考虑柱子所用到的钢筋尺码、数量和浇筑时所用到的水泥类型等,而打桩的深浅还需要相应考虑土质,楼高等各方面的因素。
想到这些,只能说头都大了。可是,我们反观我们所在城市的周围,房屋数不胜数,并且它们都很好的经过了特定自然环境的检验。那么,施工方是否能从这些已有案例中总结出规律和构造模式来辅助施工设计方对建筑的设计和维护呢?如果能从中提取出这些设计上的东西,施工方便可以参考这些提取规则针对性的处理不同的情况,提高工作效率和房屋的质量属性。
如同房地产业一样,软件开发所面对的,也是许多反复性出现的特定场景下的某些问题。计算机前辈们通过不断的实践与总结,经而有了现在用于辅助开发的一大利器–设计模式。
二、面向对象设计原则
- 开闭原则:对扩展开放,对修改关闭。
- 里氏替换原则:所有引用基类的地方必须能够透明的使用其子类对象。
- 单一职责原则:有且仅有一个原因引起类的变更。
- 接口隔离原则:接口简单化,细致化。
- 迪米特法则:最少知识原则
- 合成复用原则:在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分。
三、常见的设计模式
创建型设计模式:主要的关注点在于创建,即把new的动作交给模式去处理,由模式抽象化对象处理的过程。常见的有:
结构型设计模式:主要解决如何去组合对象,从而得到更实用、稳定、高可维护性的结构。常见的有:
行为型设计模式:描述算法和对象间职责的分配。常见的有:
- 策略模式
- 模板方法模式
- 观察者模式
- 迭代子模式
- 责任链模式
- 命令模式
- 备忘录模式
- 状态模式
- 访问者模式
- 中介者模式
- 解释器模式
各种模式的分析可以观看我的其他文章,有不同见解可以留言指正Thanks♪(・ω・)ノ。