Objective c黎克特制對換原則與開閉原則

2021-07-04 04:20:13 字數 2032 閱讀 4598

objective-c中的開閉原則和黎克特制代換原則:

開閉原則是物件導向設計中「可復用設計」的基石,是物件導向設計中最重要的原則之一,其它很多的設計原則都是實現開閉原則的一種手段。開閉原則的核心是:對擴充套件開放,對修改關閉。白話意思就是我們改變乙個軟體時(比如擴充套件其他功能),應該通過擴充套件的方式來達到軟體的改變,而不應該修改原有的**來實現變化。

黎克特制代換原則是物件導向設計的基本原則之一。黎克特制代換原則中說,任何基類可以出現的地方,子類一定可以實現。lsp是繼承復用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被復用,而衍生類也能夠在基類的基礎上增加新的行為。

附上多型呼叫的例子:

#import
@inte***ce animal : nsobject

-(void)eat;

@end

#import 「animal.h」

@implementation animal

- (void)eat

@end

#import "animal.h"
@inte***ce cat : animal

@end

#import 「cat.h」

@implementation cat

- (void)eat

@end

#import 「animal.h」

@inte***ce dog : animal

@end

#import 「dog.h」

@implementation dog

- (void)eat

@end

//不知為何框架標頭檔案無法匯入。

#import 「animal.h」

@inte***ce student : nsobject

@property (retain,nonatomic)nsstring *name;

@property (assign,nonatomic)nsinteger age;

- (void)feed:(animal *)animal;//餵養動物的方法;

@end

#import 「student.h」

@implementation student

- (void)setname:(nsstring *)name

-(void)setage:(nsinteger)ageelse _age = 22;

nslog(@」his age is %ld;」,_age);

} - (void)feed:(animal *)animal

@end

//不知為何框架標頭檔案無法匯入。

#import 「student.h」

//#import 「animal.h」

#import 「dog.h」

#import 「cat.h」

int main(int argc, const char * argv)

return 0;

} 執行結果:

2015-07-29 10:04:45.996 黎克特制替換原則[637:20308] his age is 18;

2015-07-29 10:04:45.997 黎克特制替換原則[637:20308] his name is fadykeane;

2015-07-29 10:04:45.998 黎克特制替換原則[637:20308] 學生喂動物了!

2015-07-29 10:04:45.998 黎克特制替換原則[637:20308] 動物吃東西了!

2015-07-29 10:04:45.998 黎克特制替換原則[637:20308] 狗吃肉!

2015-07-29 10:04:45.998 黎克特制替換原則[637:20308] 學生喂動物了!

2015-07-29 10:04:45.998 黎克特制替換原則[637:20308] 動物吃東西了!

2015-07-29 10:04:45.998 黎克特制替換原則[637:20308] 貓吃魚!

開閉原則與黎克特制替換原則

1.開閉原則 是物件導向設計的基本原則之一,是 可復用設計 的基礎,它的主要原則是 對擴充套件開放,對修改關閉 意思就是我們改變乙個軟體時。應該通過擴充套件方式來改變軟體,而不是修改原有的 2.黎克特制替換原則 黎克特制替換原則是說,任何基類可以出現的地方,子類一定可以出現 只有當衍生類可以替換基類...

第一節 開閉原則和黎克特制替換原則

一.開閉原則 1.定義 對擴充套件開放,對修改關閉。當應用的需求改變時,在不修改軟體實體的源 前提下,可以擴充套件模組的功能,使其滿足新的需求。2.作用 1 對軟體測試的影響 軟體遵守開閉原則的話,軟體測試時只需要對擴充套件的 進行測試就可以了,因為原有的測試 仍然能夠正常執行。2 可以提高 的可復...

模式 開閉原則與哲學

開閉原則 對修改關閉,對擴充套件開放。在設計模式中的解釋是這樣的 在軟體設計開發中,不要對原有的 進行修改,通過對原有 進行擴充套件來實現相應功能。初學模式,這段話讀著絕對拗口,甚至是矛盾重重。不修改,怎麼去擴充套件呢?其實,在盡量不修改 的情況下進行擴充套件是可行的的,注意,這裡是 盡量 官方的解...