zoukankan      html  css  js  c++  java
  • 你真的应该懂面向对象

    1.-面向对象和基于对象的分别

    所谓基于对象,就是用对象,能封装对象,把状态和操作包装起来使用.但是不能通过多态扩展对象.

    面向对象是附加多态功能的"基于对象".

    2.面向对象和面向过程的分别.

    最本质的差异是关注的侧重点不同.面向对象关注活动中的对象,面向过程关注活动中的流程.从根本上来说,两种思想会共存和相互渗透.

    3.面向对象的基本设计思想

    a.自己管好自己

    b.自己管得过多,就委派给别人

    c.不侵犯别人的领地

    d.不依赖特定的对象,不猜测对方的实现机制

    高级议题,面向对象的各种常见观念:

    1.面向对象的原教旨

    它认为对象之所以存在,因为他客观存在.

    比如什么猫,狗,飞机之类的.

    但是我认为对象并不客观存在,而在于你主观的设计如何.比如同学继承于人类之类的,或者班级由学生组成之类的,可以存在,也可以不存在,在于你主观的设计,并不存在一种恰如其分,因为存在所以存在的必然性.

    你可以设计一个飞猫,比狗还大的猫,只要你喜欢.

    原教旨给我们的财富是,建立易于理解的概念.

    2.设计模式是有害的

    设计模式是一种招式,很华丽的招式.招式应该服从于设计理念,而不是将你的设计改造成这些招式.

    3.面向对象为什么是可行的设计

    面向对象最重要的设计能力在于哪些,主要有如下:

    a. 将修改集中, 多态是最有力的工具.因此,在对象之间应该用多态的模式关联起来,而不是把代码写死.

    b.封装减少无益的暴露.减少依赖,关联越多,修改的几率越高,对将来的改动越困难.

    c.面向对象并不阻止修改,反而,面向对象更加欢迎修改,更易于修改,正是这种强大的进化能力,让程序可以适应需求的不断发展.当然,要用恰当的方式去修改.

    d.用替换法去修改程序: 先建立一个新的对象,然后替换系统原有的对象,而不要直接去修改原有的对象.原因有两个,一,你旧有的对象对旧系统是有效的.二.你新对象是不成熟的.

  • 相关阅读:
    二.线性表
    一.绪论
    托管服务器代码
    jquery easyui DataGrid 数据表格 属性
    用socket 模拟http请求
    struct和class的相同点与不同点
    c++中的基本数据类型
    当函数返回一个局部变量的指针问题,内存是否被释放
    Python首先生成包含1000个随机字符的字符串,然后统计每个字符的出现次数。(使用字典)
    浅谈结构体字节的求法
  • 原文地址:https://www.cnblogs.com/Nobel/p/2043232.html
Copyright © 2011-2022 走看看