设计模式(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
  接口尽可能小而完备。

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

封装变化点和分界层

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值