如何学好设计模式这门课

设计模式是相对于其他工具类和语言类的课程比较抽象难学,而且各个模式之间相对独立,知识碎片化严重,不好归纳和总结。但是设计模式的学习又不是无规律可循,如果抓住了以下几个关键点,不仅能很好的理解各个模式,而且能够实现创新性的给出问题的解决方案。

面向对象技术的产生的意图和目的

设计模式是在面向对象技术基础上,经过无数次验证代码设计经验的总结。面向对象技术是在第二次软件危机下,为了解决软件的维护性产生的一门技术,设计模式围绕着“扩展和复用”两大主题展开,无论如何变化,均服务这一根本目的。深入的理解这一意图,就不难理解每个模式其原理及变化。

面向对象设计原则

面向对象设计原则是面向对象技术的指导性方针,是对软件的可维护性实现策略的归纳和总结;我们可以将23中设计模式看成面向对象设计原则的具体实现方法。

  1. 开闭原则:对扩展开放,对修改关闭;这条原则告诉大家,软件设计需要迎合将来需求的变化,而不是拒绝变化,需求的变化不应该对原有的代码产生影响。
  2. 里氏替换原则:所有父类出现的地方,子类都可以替换它;它是继承复用的基石,只有衍生类能够提换父类时,父类的代码才能得到真正的复用。
  3. 依赖倒置原则:强调模块调用时,调用方依赖于抽象,而不是具体类的实例。这一规则使得多态技术的体现,也说明了使用面向接口的编程根本原因。
  4. 单一职责原则:面向对象的软件设计主要是类的识别与划分,封装一个类的时候,不要存在多于一个导致类变更的原因,否则这个类就需要拆分。之所以要使用面向切面的编程就是追求职责的单一性(应用类职责单一、切面类同样职责单一)和复用。
  5. 接口隔离原则:也称小接口原则,每个接口中不存在子类用不到却必须实现的方法,否则,就要将接口拆分。接口隔离原则不仅使得我们代码更加优雅,而且可读性强,语义清晰。
  6. 迪米特法则:也称最小知识原则,用于降低两个对象的耦合度问题。换句话说调用方只需知道被调用方的接口(能做什么),具体怎么做(调用方无需知道),这样被调用方内部代码的变动,并不会影响调用方的使用。这一点也是面向对象技术封装性的要求。
  7. 合成复用原则:尽量使用关联关系,而不是继承关系实现代码的复用,关联关系是一种动态的松耦合关系,而继承关系是一种静态紧耦合关系。

UML中类图

面向对象程序设计中,类图是一种非常重要的表现形式;掌握了每个设计模式类图就掌握了设计模式实现机制。在类图中不仅要明白各种线条箭头代表的含义,而且要掌握每种关系转换为代码时,具体的代码的表现。

小结

设计模式的学习只有掌握了以上三条,不仅能够知其然,而且能够知其所以然,才能准确的根据定义,才能看懂底层框架对设计模式的使用及改进。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值