android ios 耦合,IOS 動畫設計(1)——高內聚,低耦合原則

高内聚低耦合是软件设计的重要原则,旨在提高模块的独立性和可维护性。通过将功能分解为独立的模块,每个模块专注于单一职责,减少模块间的依赖,可以提升代码的可读性和可复用性。本文通过iOS动画面例,解释了如何实现这一原则,将复杂的动画分解为独立的类,提高了代码的组织结构和效率。遵循这一原则,可以创建更加健壮和易于维护的软件系统。
摘要由CSDN通过智能技术生成

模塊獨立性(單一職能原則)指每個模塊只完成系統要求的獨立子功能,並且與其他模塊的聯系最少且接口簡單,兩個定性的度量標准就是耦合性和內聚性。

耦合性也稱塊間聯系。是軟件系統結構中各模塊間相互聯系緊密程度的一種度量。模塊之間聯系越緊密,其耦合性就越強,模塊的獨立性則越差。模塊間耦合高低取決於模塊間接口的復雜性、調用的方式及傳遞的信息。

內聚性又稱塊內聯系。指模塊的功能強度的度量,即一個模塊內部各個元素彼此結合的緊密程度的度量。若一個模塊內各元素(語名之間、程序段之間)聯系的越緊密,則它的內聚性就越高。

耦合性與內聚性是模塊獨立性的兩個定性標准,將軟件系統划分模塊時,盡量做到高內聚低耦合,提高模塊的獨立性,為設計高質量的軟件結構奠定基礎。同樣的,在 IOS 動畫設計中,也同樣要求做到高聚類,低耦合。下面舉例說明。

需求很簡單,就是畫一條橫線,2秒后向右位移(持續1秒),4秒后向右位移並在1秒內逐漸消失。

傳統的比較弱的新手寫法如下:

8d3931eeeb77c4943ccde891be1808b7.png

把所有的語句都寫在一個函數中,造成 viewDidLoad 函數體臃腫,且可讀性較差,給后期維護與修改帶來不便。

秉承高聚類、低耦合的原則,現做修改如下:

04a71329206a6d210c140782929b7b33.png

2c6ba5cfd544f27877946b2ae84eb1af.png

將動畫分解為“出現”和“隱藏”兩種屬性,並將單一的某種動畫屬性(此處為線條的動畫屬性)封裝成類。

此時,便使用高內聚、低耦合的原則設計出了動畫,每個模塊都有其單一職能。由此,可以作出相應總結與理解:

1. 高內聚

具有高內聚性的一個元素,只完成它職責內的事情,而把那些不在它職責內的事情拿去請求別人來完成。如果我是一個項目經理,我的職責是監控和協調我的項目各個階段的工作。當我的項目進入需求分析階段,我會請求需求分析員來完成;當我的項目進入開發階段,我會請求軟件開發人員來完成;當我的項目需要測試的時候,我會請求測試人員……如果我參與了開發,我就不是一個高內聚的元素,因為開發不是我的職責。“高內聚”給軟件項目帶來的優點是:可讀性強、易維護和變更、支持低耦合、移植和重用性強。

2. 低耦合

低耦合就是要求在我們的軟件系統中,某元素不要過度依賴於其它元素。舉個例子,一個程序有50個函數,這個程序執行得非常好;然而一旦你修改其中一個函數,其他49個函數都需要做修改,這就是高耦合的后果。“低耦合”給軟件項目帶來的優點是:易於變更、易於重用。

3. 高內聚與低耦合的類比理解

高內聚、低耦合講的是程序單位協作的問題, 可以這樣理解,一個企業的管理, 最理想的情況就是各個部門各司其職,井然有序,互不干涉, 但是需要溝通交流的時候呢, 各個部門都可以找到接口人專門負責部門溝通以及對外溝通。

在軟件設計中, 就是說各個模塊要智能明確, 一個功能盡量由一個模塊實現, 同樣,一個模塊最好只實行一個功能。這個是所謂的“內聚”; 模塊與模塊之間、系統與系統之間的交互,是不可避免的,但是我們要盡量減少由於交互引起的單個模塊無法獨立使用或者無法移植的情況發生, 盡可能多的單獨提供接口用於對外操作, 這個就是所謂的“低耦合”。

但是實際的設計開發過程中,總會發生這樣那樣的問題與情況,真正做到高內聚、低耦合是很難的,很多時候未必一定要這樣,更多的時候“最適合”的才是最好的,不過,理解思想,審時度勢地使用,融會貫通,靈活運用,才是設計的王道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值