什么是面向对象思想?好处是什么?

什么是面向对象思想?

代码优化好处?

设计模式和面向对象思想的关系?

不用设计模式或者不可以使用面向对象思想会有什么问题?

问题或或者场景?

  1. 生活中: 如曹操 写的诗句 “喝酒唱歌,人生真爽” 到 “对酒当歌,人生真爽” 再到 “对酒当歌,人生几何”,臣子命令工匠连夜印刷,作为小小印刷工匠的你是不是想骂娘 “怎么老是改呢,还让不让人睡觉了”(背景注意: 当时活字印刷术还没有发明呢)
  2.  一个 全新web项目的开发过程中,产品不停改需求调整需求,是不是很苦恼,好的代码风格组织结构(使用面向对象和设计模式) 是不是能够从容应对需求改变,或者达到尽量少改动代码效果呢?
  3.  在多个开发人员共同开发过程中,有些功能是不是能共用呢?
  4.  在一个复杂的功能,开起来不好拆开,分给一个人任务量有点大,写在一个文件中又容易冲突,难道不能用(面向对象的思想)拆分任务?
  5.  在一个web项目的后期的几次迭代,可能会经常调整某些功能
  6.  或者是有着复杂逻辑项目,间隔一年又让你改功能,怎么样做才利于一年后的工作?
  7.  公司接回来的外包项目,他的代码组织的怎么样?影响你的阅读效率,及接受程度。如果你是原写代码人会怎么办
  8.  一个人或几个人写一个开源项目,重要的一点,就是代码让大多人易于理解

所以呢!总结下要求,就是我写的代码要

  1.  易于理解 !!!  对自己易于理解,利于别人理解,对间隔时间长情况下易于理解。
  2.  易于复用 !!! 不要重复写一些东西,和他人协作开发更应该如此
  3.  易于拆分  !       拆分关联度高模块,分工开发
  4.  易于层层理解!   间隔时间长,或者写的代码其他人要看,或者自己看,能快速找到位置,不用关心无关部分代码
  5.  易于应付可能的变化 !  如不停改需求,改条件等,做到另可能少改动文件数量(编译型语言更应如此),和方法数量
  6.  易于代码编辑器的自动提示和自动生成!  像接口定义,抽象类,抽象方法的 定义等可以起到这方面作用当然还有其他方面作用如:协作分工,统一要求功能等左右
  7. 易于扩展!      在尽可能少的改动下,新增功能,如只是新增个子类,价格配置等就能实现

设计模式与面向对象思想的关系?

首先说面向对象思想,和函数式或者流程式编程对应。 面向对象编程最重要的是用到类,对象概念。 而设计模式的学习是为了 更好的应用好类,对象 ,最终达到的目的是代码 易于... 易于... 的目标

评价一个项目程序的指标?

  1. 耦合度

面向对象的原则? 详细的理解参考另一篇博客

1. 单一职责原则。 怎么判断是否一个类有多种职责? 如果能够想到多于一个的动机去改变一个类,那这个类就具有多于一个的职责。

2.开放-封闭原则。 一句话描述: 对于扩展是开放的,对于更改是关闭的

       开放封闭的呈现或表现,类中举例: 如 有一个运算父类,有四个运算子类 :加法类,减法类,乘法类,除法类。再加增加一个幂运算,就不用改原来的(封闭),只需要新增一个幂运算类(开放)

3. 依赖倒转原则。  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值