设计模式基本概念

1.什么是设计模式?

      基本概念:设计模式(Design Pattern)是一套被反复使用、多数人知晓、经过分类编目的优秀代码设计经验的总结。使用设计模式是为了提高代码的重用性,是代码更易理解并保证代码的可靠性。设计模式是软件工程的基石脉络,如同大厦的结构一样。

设计模式贯彻的原理是:面向接口编程,而不是面向实现

其目标原则是:高内聚(Cohesion)和低耦合(Coupling)

 

1.1 什么是面向接口编程,是面向实现?

举个例子,假设有两种品牌的轮胎,普利司通(Bridgestone)和米其林(Michelin),而轮胎的共同特性都是会转(roll)。那么我们可以得到两个类:

面向实现编程:

面向接口编程:

      如果将这两种轮胎的共同特性提取出来,在转动轮胎的时候,只关注“是轮胎”本身,而不去了解“是什么品牌的轮胎”,问题就迎刃而解了。

 

1.2 高内聚(Cohesion)和低耦合(Coupling)?

一、什么是耦合度

        耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码质量评价的一个标准。耦合的强度依赖于以下几个因素:

(1)一个模块对另一个模块的调用;

(2)一个模块向另一个模块传递的数据量;

(3)一个模块施加到另一个模块的控制的多少;

(4)模块之间接口的复杂程度。

二、什么是内聚性

        内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。

三、目的

        耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。举个例子:修计算机容易还是修收音机容易?

1.3 设计模式分类

       设计模式的分类:Gang of Four的“Design Patterns: Elements of Resualbel Software”书将设计模式归纳为三大类型,共23种设计模式。

1.4 设计模式规则

          设计模式基本原则:最终目的:高内聚,低耦合。

1) 开放封闭原则:类的改动是通过增加代码进行的,而不是修改源代码。

2) 单一职责原则 :类的职责要单一,对外只提供一种功能,而引起类变化的原因都应该只有一个。

3) 依赖倒置原则:依赖于抽象(接口),不要依赖具体的实现(类),也就是针对接口编程。

4) 接口隔离原则:不应该强迫客户的程序依赖他们不需要的接口方法。一个接口应该只提供一种对外功能,不应该把所有操作都封装到一个接口中去。

5) 里氏替换原则:任何抽象类出现的地方都可以用他的实现类进行替换。实际就是虚拟机制,语言级别实现面向对象功能。

6) 优先使用组合而不是继承原则:如果使用继承,会导致父类的任何变换都可能影响到子类的行为。如果使用对象组合,就降低了这种依赖关系。

7) 迪米特法则:一个对象应当对其他对象尽可能少的了解,从而降低各个对象之间的耦合,提高系统的可维护性。例如在一个程序中,各个模块之间相互调用时,通常会提供一个统一的接口来实现。这样其他模块不需要了解另外一个模块的内部实现细节,这样当一个模块内部的实现发生改变时,不会影响其他模块的使用。(黑盒原理)。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值