面向对象·设计原则·设计模式·编写规范·重构关系总结

面向对象·设计原则·设计模式·编写规范·重构关系总结

面向对象是武器,设计模式是招式,设计原则是心法
以心法为基础,以武器运用招式应对复杂的编程问题

1 面向对象

  • 主流的编程范式或者是编程风格有三种,它们分别是面向过程、面向对象和函数式编程。
  • 面向对象是很多设计原则,设计模式编码的基础

2 设计原则

  • 设计原则是指导代码设计的一些经验总结,这些原则听起来很抽象,定义描述模糊,不同的人有不同的解读。不要单纯的去记忆,意义不大
  • 对于每一种设计原则要掌握它的实际初衷,能解决那些编程问题,有哪些应用场景,灵活的应用这些原则

3 设计模式

  • 设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路;大部分设计模式要解决的都是代码的可扩展性问题;
  • 设计模式相对于设计原则来说,没有那么抽象,大部分都不难理解 ,代码实现也不复杂;
  • 要了解它们都能解决哪些问题,掌握典型的应用场景,要懂得不要过度应用;

经典的设计模式有23种,分为三大类:创建型,结构型,行为型;有些模式比较常用,有些模式很少用到。对于常用的设计模式要话时间理解掌握,对于不常用的设计模式我们只需要稍微了解即可

1 创建型

常用的有:单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式。
不常用的有:原型模式。

2 结构型

常用的有:代理模式、桥接模式、装饰者模式、适配器模式。
不常用的有:门面模式、组合模式、享元模式。

3 行为型

常用的有:观察者模式、模板模式、策略模式、职责链模式、迭代器模式、状态模式。
不常用的有:访问者模式、备忘录模式、命令模式、解释器模式、中介模式。

4 编程规范

编码规范主要解决的是代码可读性的问题;编码规范相对于设计原则和设计模式更加具体,更加偏重代码细节;
比较偏向于记忆;不像设计原则,需要融入很多个人的理解和思考。
推荐书籍《重构》《代码大全》《代码整洁之道》

5 代码重构

  • 在软件开发中,只要软件在不停地迭代,就没有一劳永逸的设计。随着需求的变化,代码的不停堆砌,原有的设计必定会存在这样那样的问题。针对这些问题,我们就需要进行代码重构。
  • 重构是软件开发中非常重要的一个环节。持续重构是保持代码质量不下降的有效手段,能有效避免代码腐化到无可救药的地步。
  • 重构需要使用面向对象设计思想,设计原则,设计模式,编码规范的知识。设计思想,设计原则,设计模式一个最重要的使用场景就是在重构的时候;
  • 虽然使用设计模式可以提高代码的可扩展性,但过度不恰当地使用,也会增加代码的复杂度,影响代码的可读性。在开发初期,除非特别必须,我们一定不要过度设计,应用复杂的设计模式。而是当代码出现问题的时候,我们再针对问题,应用原则和模式进行重构。这样就能有效避免前期的过度设计。
    重构的目的、对象、时机、方法;
    保证重构不出错的技术手段:单元测试和代码的可测试性
    两种不同规模的重构:大重构(大规模高层次)和小重构(小规模层次)

总结

  • 面向对象编程因为其具有丰富的特性(封装、抽象、继承、多态),可以实现很多复杂的设计思路,是很多设计原则、设计模式等编码实现的基础
  • 设计原则是指导我们代码设计的一些经验总结,对于某些场景下,是否应该应用某种设计模式,具有指导意义。比如,“开闭原则”是很多设计模式(策略、模板等)的指导原则。
  • 设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。应用设计模式的主要目的是提高代码的可扩展性。从抽象程度上来讲,设计原则比设计模式更抽象。设计模式更加具体、更加可执行
  • 编程规范主要解决的是代码的可读性问题。编码规范相对于设计原则、设计模式,更加具体、更加偏重代码细节、更加能落地。持续的小重构依赖的理论基础主要就是编程规范。
  • 重构作为保持代码质量不下降的有效手段,利用的就是面向对象、设计原则、设计模式、编码规范这些理论。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值