抽象:
    在机器模型(位于“方案空间”)与实际解决的问题模型(位于“问题空间”)之间,程序猿必须建立起一种联系。
    image.png
    一些基本特征:

    • 所有东西都是对象,所谓万物皆对象。
    • 程序是一大堆对象的组合;通过消息传递,各对象知道自己该做什么。
    • 每个对象都有自己的存储空间,可容纳其他对象。
    • 每个对象都有一种类型。根据语法,每个对象都是是某个“类”的一个实例。
    • 同一类所有对象都能接收相同的消息。

    实现方案的隐藏
    大致有两方面的人员涉足面向对象编程。
    “类的创建者”(创建新数据类型的人)以及“客户程序猿”(在自己的应用程序中采用现成数据类型的人)

    “接口”(Interface)规定了可对一个特定对象发出哪些请求。然而,必须某个地方存在着一些代码,以便满足这些请求。这些代码与那些隐藏起来的数据便叫作“隐藏的实现”。

    访问控制的原因:

    • 第一个原因是防止程序猿接触他们 不该接触的东西——通常是内部数据类型的设计思想。若只是为了解决特定的问题,用户只需要操作接口即可,毋需明白这些信息。
    • 第二个原因是允许库设计人员修改内部结构,不用担心它会对客户程序猿造成什么影响。例如,我们最开始可能设计了一个形式简单的类,以便简化开发。以后又决定改写,使其更快地运行。若接口与实现的方法早已隔开,并受到波保护,就可以放心的做到这一点,只要求用户重新连接一下即可。

    image.png
    image.png