设计模式前言

那天去参加面试,面试官跟我说,既然你觉得自己C++学的还不错,那么你能跟我说说你对面向对象的理解吗?最开始的一瞬间,自己有点蒙。随后,很快调整自己,想起自己之前在阅读《C++ Primer》这本书的时候,看到过书上的一些介绍,自己也试图去理解过一些,就Blablablabla讲了一堆,面试官脸上露出了笑容,我知道自己讲的应该是对的。而此时,面试官向我抛出了另外一个问题。那你知道,面向对象的特性之后,大师又总结了很多面向对象的模式,你知道吗?原来上课的时候,自己学过一些,但是由于时间的原因,我都记不清了。于是干脆说自己不知道。但是,还是觉得蛮遗憾的,学过的东西没有学牢,关键的时候没能排上用场,于是回来之后,找来一些学校资料,好好的学习一下,在这里记录之,督促自己学习、进步。

在设计模式中,有如下的一些设计原则:

  1)单一职责:一个类中仅有一个引起它变化的原因。
  2)开闭原则:类模块应可扩展,不可修改。这里要说明一下,扩展和修改是不同的。比如:我们要在加一种ModelDuck,那么我们写一个ModelDuck的类继承Duck,这叫扩展,不是修改。什么是修改,就好像我们开始说的那种作法,为了加一个fly的功能,我们要把所有的子类中加入不同的实现,这叫修改。
  3)里氏代换原则:任何基类可以出现的地方,子类一定可以出现
  4)依赖倒转原则:依赖于抽象,不依赖与具体,具体来说,就是对抽象编程,不对具体进行编程,降低客户与实现模块间的耦合
  5)接口隔离原则:使用多个隔离的接口,比使用单个接口要好
  6)合成复用:在一个新的对象里通过关联关系来使用一些已有的对象,使之成为新对象的一部分,新对象通过调用已有对象的方法达到复用其已有功能的目的。简言之 ,就是尽 量使用组合,减少继承。
  7)迪米特法则(最少知道原则):一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。简言之,减少系统模块之间的耦合,这样当一个模块修改时,就会尽量少的影响其他模块。

在类的设计中,我们应尽量的遵循这些原则,仔细的设计每个类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值