设计模式(1)- 八个设计原则

设计模式(一) 八个设计原则

设计模式

  一个实际任务往往可以分成不同的部分,通过向下继续分解,可以得到不同的子任务。学者们发现,存在一些典型任务,这些任务是具有普遍适用性的,并且存在一些程序结构,可以更好地完成任务。这个“更好”被定义为后面讲到的八个设计原则。这些典型任务对应的解决方案(这些好的程序结构)就被称为设计模式(Design Pattern)。
  这八个设计原则都是基于一个点所延展开来的,这就是现代编程工程的主要矛盾,即“需求总是在不断变化的”。可以说,所有的设计模式,都是以不同的角度,处理这一个主要矛盾的某些方面。
  另外,这几篇文章的内容主要是“面向对象”方面的设计模式。

多态

  外部接口是一致的,内部实现却是不同的,就像一个对象有多个形态一样。这是一种设计的概念,在具体的语言的实现中自然有不同方法。

  • C,函数指针
  • C++,虚函数(Virtual)与重写(Override)
  • Python,动态绑定

复用和依赖

  一个程序到落地将经历编写、编译、链接和生成可执行文件。
  复用代码指的是,编译时,有些代码的先前的编译结果可以直接使用。比如C++中,如果一个类的实现没有被修改,并且继续被使用,则它上一次的编译结果仍然是有效的。
  依赖通常与代码中的调用有关,被调用的内容的编译次序显然要优先于调用它的内容,则称后者依赖于前者。

依赖倒置原则

  Dependence Inverse Principle
  程序结构的高层应是稳定的,底层可以是变化的,但高层不依赖于底层,两者都依赖于抽象。抽象应是稳定的,实现细节可以是变化的,但抽象不依赖于实现细节。

开放封闭原则

  Open Closed Principle
  扩展开放,修改封闭
  比如允许另外新增类或函数,但禁止修改原有的类的实现细节

单一职责原则

  Single Responsibility Principle
  一个类的职责不应过多,适可而止。
  引起一个类发生变化,应只有一个方向上的原因,这个变化的方向隐含了类的职责。

Liskov 替换原则

  Liskov Substitution Principle
  子类能直接替代基类。换而言之,继承发生在类型的抽象。

接口隔离原则

  Interface Segregation Principle
  接口尽可能小而完备。

优先使用对象组合而非继承

封装变化点和分界层

针对接口编程而非针对实现编程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值