zoukankan      html  css  js  c++  java
  • Swift 面向对象

    1、面向对象概念

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

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

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

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

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

    • 而面向对象的编成,对象分析是关键。

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

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

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

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

    1.2 面向对象编程的特点

    • 1)封装性

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

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    #最小生成树,Trie#CF888G Xor-MST
    #Tarjan#洛谷 5676 [GZOI2017]小z玩游戏
    #区间dp#CF1114D Flood Fill
    #构造,二分#[AGC006B] [AGC006D] Median Pyramid
    #0/1分数规划#AT1807 食塩水
    #笛卡尔树#洛谷 3793 由乃救爷爷
    #同余最短路#洛谷 2371 [国家集训队]墨墨的等式
    awk命令使用
    k8s快速删除所有退出的pod
    ratticdb密码管理工具安装使用
  • 原文地址:https://www.cnblogs.com/QianChia/p/8631457.html
Copyright © 2011-2022 走看看