Swift 面向对象

1、面向对象概念

  • 面向过程编成是将所要解决的问题按解决问题的步骤进行分析。

    • 如果是大问题,就分解成为多个不同的小问题,在程序里叫做划分成不同的模块。
    • 每一个解决的步骤可能是一行或者几行代码,也可能是一个函数。
    • 这样把每一个步骤都实现或者解决掉,最后把所有的解决手段按顺序进行调用。
    • 如果遇到一些意外情况就分情况处理,如果遇到重复的操作就循环处理,如此就完成了整个程序。
  • 面向对象是以面向对象的方式去解决问题的思路。

    • 关注的往往不是解决问题的步骤。
    • 更多的是将问题所涉及的方面进行一些角色层次上的划分。
    • 在每个角色上都有其特性,也有角色所要承担的责任。
    • 分清楚了这些之后,通过整合各个角色之间的行为互相配合,来最终解决问题。
    • 我们划分问题解决中各个参与者的角色,并不是为了完成某一个步骤而是从所划分的角色本身出发,描述其在整个问题解决过程中的行为。

1.1 面向过程与面向对象的区别

  • 面向过程的编成,步骤划分是关键。
  • 而面向对象的编成,对象分析是关键。

  • 面向过程的编成,随着步骤的增多和步骤的复杂,程序的逻辑也将更加的复杂。

  • 而面相对象的编成,跟步骤无关,各个对象各司其职,职责清楚,并不会因步骤的复杂而复杂,至少复杂的程度并不像面向过程那么深,并且更适合做大型问题的解决方案。

  • 面向过程编成中,是以过程、步骤、算法为驱动的,我们的程序逻辑跟这三点紧紧关联。

  • 而面向对象的实现中,对象之间是以方法、消息来互相通信协调的,程序可以方便实现角色的分离和分层。

1.2 面向对象编程的特点

  • 1)封装性

    • 简单点讲,封装性就是为了方便类的设计者对信息进行隐藏,提高安全性。而对调用者而言,也减少了需要知道的内容,更不需要知道实现,减少了调用的复杂度。

    • 封装性意味着至少三点。

      • 一是说我们的类或对象在外部看来是一个有数据和方法的整体,不是支离破碎的数据、行为、步骤,而是整体的对象,有对象然后才是对象的属性和方法。
      • 二是说我们的类或者对象对外界存在一定的信息隐藏,对内来设置哪些外界能看到,哪些看不到,对外,只能看到能看到的,操作能操作到的。
      • 三是外界知道对象可以接受那些信息,进行什么样的处理,但是具体是如何进的,外界不用知道也无从知道。
  • 2)继承性

    • 继承性是说,在面向对象中,除非某个类已经显式的指出不允许在其上做功能的扩展,否则我们有办法对其进行扩展,不论这个类的源代码是否为我们所掌握,我们都能根据现有的类来创建新类,扩展类的能力。
  • 3)多态性

    • 多态性指的是,由于不同的类进行了不同的封装,它们公开出来的方法可能有同一个方法,但是外界调用同一个方法的时候,不同的类返回不同的行为,这就是多态性。通过继承过程中对同一方法的不同实现,就可以实现多态。

1.3 为什么要使用面向对象编程

  • 总结来讲,面向对象有如下优点

    • 1)易维护:采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块进行,所以维护起来非常的方便,成本也较低。

    • 2)质量高:在设计时,可重用现有的、在以前的项目的领域中已经测试过的类,使系统满足业务需求并具有较高的质量。

    • 3)效率高:在软件开发时,根据设计的需求对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近日常生活和自然的思考方式,势必提高软件开发到的效率和质量。

    • 4)易扩展:由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。

文章目录
  1. 1. 1、面向对象概念
    1. 1.1. 1.1 面向过程与面向对象的区别
    2. 1.2. 1.2 面向对象编程的特点
    3. 1.3. 1.3 为什么要使用面向对象编程
隐藏目录