当前位置 博文首页 > 做自己擅长的事:对象导论

    做自己擅长的事:对象导论

    作者:[db:作者] 时间:2021-07-15 09:56

    我们之所以将自然界分解,组成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来……除非赞成这个协定中的规定的有关语言信息的组织和分类,否则我们根本无法交谈。
    ——benjamin lee whorf

    抽象过程

    所有编程语言都提供抽象机制,人们之所以可以解决问题的复杂性直接取决于抽象的类型和质量。
    面向对象程序设计方式:
    1、万物皆为对象
    2、程序是对象的集合,它们通过发消息来告诉彼此所要做的
    3、每个对象爱你个都有自己的由其他对象所构成的存储
    4、每个对象都拥有其类型
    5、某一特定类型的所有对象都可以接收同样的消息
    对象具有状态、行为和标识

    每个对象都有一个接口

    具有相同的特性(数据元素)和行为(功能)的对象集合,所以一个类实际上就是一个数据类型。面向对象方法并不是仅局限于构建仿真程序。任务程序都是你设计的系统的一个仿真,面向对象技术的应用确实可以将大量的问题很容易地降解为一个简单的解决方案。
    每个对象都只能满足某些请求,这些请求由对象的接口定义,决定接口的便是类型。

    每个对象都有个服务

    将对象看作是服务提供者还有一个附带的好处:它有助于提高对象的内聚性。高内聚是软件设计的基本质量要求之一:这意味着一个软件构件的各个方面“组合”很好。
    将对象作为服务提供者看待是一个伟大的简化工具,这不仅在设计过程中非常有用,而且当其他人试图理解你的代码或者重用某个对象时,如果他们看出了这个对象所能提供的服务价值,它会使调整对象以适应其设计的过程变得简单很多。

    被隐藏的具体实现

    Java用三个关键字在类的内部设定边界:public、private、protected。
    public表示紧随其后的元素对任何人都是可用的,而private这个关键字表示除类型创建者和类型内部方法之外的任何人都不能的访问的元素。protected关键字与private作用相当,差别在于继承的类型可以访问protected成员,但不能访问private成员。
    还有默认访问权限,类可以访问在同一个包(库构件)的其它成员。

    复用具体实现

    最简单复用某个类的方式就是直接使用该类一个对象,还可以在其类中一个对象置于新类中。新的类可以由任意数量、任意类型的其他对象以任意可以实现新类中想要的功能的方式组成。因为是在使用现有的类组合成新的类,这种概念被称组合,如果组合是动态发生的,那么他通常称聚合。组合经常被视为has-a(拥有)关系。

    继承

    当源类(被称基类、超类或父类)发生变动时,被修改时,被修改的“副本”(被称为导出类、继承类或者子类)也会反映这些变动。
    基类与导出类产生差异,可以在导出类添加新方法,也可以在导出类覆盖父类的方法。
    替代原则 导出类与父类具有完全相同的类型,可以完全替代基类对象。

    伴随多态的可以互换对象

    未完待续

    cs