類簇的設計

2021-07-09 14:11:52 字數 2578 閱讀 1800

這兒為了驗證xcode上類簇nsnumber實現過程設計了乙個簡化版類簇lonumber

#import

@inte***ce

lonumber :

nsobject

@property

(readonly

)int

intvalue;

//獲取物件對應的

int資料

@property

(readonly

)bool

boolvalue;

//獲取物件對應的

bool

資料//

初始化- (

instancetype

)initwithint:(

int)value;

- (instancetype

)initwithbool:(

bool

)value;

//便利構造器

+ (instancetype

)numberwithint:(

int)value;

+ (instancetype

)numberwithbool:(

bool

)value;

@end

#import

"lonumber.h"

//私有子類

__locfnumber

@inte***ce

__locfnumber :

lonumber

@end

@implementation

__locfnumber

//初始化

- (instancetype

)initwithint:(

int)value

return

self;}

//intvalue

方法- (

int)intvalue

- (nsstring

*)description

@end

//私有子類

__locfboolean

@inte***ce

__locfboolean :

lonumber

@end

@implementation

__locfboolean

- (instancetype

)initwithbool:(

bool

)value

return

self;}

- (bool

)boolvalue

-(nsstring

*)description

@end

//私有子類

loplaceholdernumber

@inte***ce

loplaceholdernumber :

lonumber

@end

@implementation

loplaceholdernumber

- (instancetype

)init

- (instancetype

)initwithint:(

int)value

- (instancetype

)initwithbool:(

bool

)value

@end

@implementation

lonumber

//抽象類

:不能建立的物件

//通過重寫

alloc方法,

在alloc

開闢空間時指向其私有子類

loplaceholdernumber型別,

通過此子類開闢空間

+ (instancetype

)alloc

//宣告靜態的

loplaceholdernumber

型別的指標

,保證只做一次初始化

static

loplaceholdernumber

*number =

nil;

if(!number)

return

number;}//

初始化//- (instancetype)init

- (instancetype

)initwithint:(

int)value

- (instancetype

)initwithbool:(

bool

)value

//便利構造器

+ (instancetype

)numberwithint:(

int)value

+ (instancetype

)numberwithbool:(

bool

)value

@end

#import

#import

"lonumber.h"

intmain(

intargc,

const

char

* argv)

OC中的類簇

類簇 class cluster 是一種設計模式,在foundation framework中被廣泛使用,舉個簡單的例子 nsarray arr nsarray arraywithobjects foo bar nil nslog arr class arr class output nsarray...

Kmeans初始類簇的選取?

答 k means 演算法選擇初始seeds的基本思想就是 初始的聚類中心之間的相互距離要盡可能的遠。1.從輸入的資料點集合中隨機選擇乙個點作為第乙個聚類中心 2.對於資料集中的每乙個點x,計算它與最近聚類中心 指已選擇的聚類中心 的距離d x 3.選擇乙個新的資料點作為新的聚類中心,選擇的原則是 ...

從NSArray看類簇

class clusters 類簇 是抽象工廠模式在ios下的一種實現,眾多常用類,如nsstring,nsarray,nsdictionary,nsnumber都運作在這一模式下,它是介面簡單性和擴充套件性的權衡體現,在我們完全不知情的情況下,偷偷隱藏了很多具體的實現類,只暴露出簡單的介面。熟悉這...