当前位置: 首页>編程日記>正文

iOS | OC 面向对象的编程

iOS | OC 面向对象的编程

1.1 对象的概念

面向功能的软件设计的局限性:难于应对需求的变更,

维护成本会比较高。对象有属性,并且能够接收消息来进行相应的处理。属性指的是对象的性质和所具有的信息。基于面向对象的软件开发,比较接近于人的思考方式,更善于应对需求变更。

消息是对象之间通信的唯一手段。对象收到消息后,会解析并处理消息。具体的处理方法和这个对象的内部实现叫做方法。送信的对象称为发送者,收信的对象称为接收者。通过消息协调各个对象之间的消息发送,使其作为一个整体运行,这就是面向对象的软件运行模式。

使用对象的概念对问题进行抽象化的方法叫作面向对象。抽象化指的是尽可能地不考虑相关细节,只关注对象的核心和本质。

对象的属性一般被定义为指向其他对象的指针,这个指针叫做实例变量或者变量。变量可能指向一个空的对象,也可能不是一个指针,可以是数值对象。对象和对象之间一般是通过一个对象的某个属性是另外一个对象的变量来建立关系的。没有引用关系的两个对象之间无法发送消息。

把具备相同变量和方法的对象提炼出来,做成“模版”,之后使用“模板”来创建各个具体对象。这种“模板”就是类。类包含了一组特定对象的共有特性。用类创建对象的过程叫做实例化,生成的对象叫做实例对象,或简称为实例。方法是在类中统一定义的,同一个类不同实例对象的方法都是相同的。

1.2模块和对象

软件开发中模块也是一个功能单位,构成一个软件的各个相互独立的部分叫做模板。一个模块由变量、方法甚至其他模块构成。所以模块具备层次性。

独立性高(低耦合、高内聚)的模块划分是最佳的划分方式。模块的独立性指的是每个模块之间的交集应该尽可能地小。减少模块辩护时的影响,降低维护成本。一个独立性高的模块会把what和how清楚的分开,声明和实现是分开的,只要保持声明一致,具体的实现可以随时被更换成性能更高的实现,提高软件的可维护性。

模块独立性的划分原则是只对外提供最小限度的接口信息,内部实现不对外公开。这个原则叫做信息隐蔽或封装。

绝大多数基于面向对象语言开放的程序中,对象是由类的定义来描述的,实例对象是在程序运行的时候动态生成的。类的定义和实现文件就是构成程序的模块。

类是由实例变量和方法构成的。类公开给外部的、关于如何使用这个类的信息叫做接口。

一个设计良好的类只会把必须公开的信息记录在接口中,这样才能够加强独立性。

为了高效率地实现进程间通信,OC特别定义了一种接收方无需返回应答的消息。


https://www.fengoutiyan.com/post/15238.html

相关文章:

  • ios aop编程
  • 面向对象的程序设计也是一种
  • 面向对象建模
  • ios c
  • c语言面向对象
  • 面向对象编程
  • java面向对象
  • 面向对象程序设计C
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機