我正在尋找可以移動一些共享代碼的基本模式。我有一個存儲在Core Data中的NSManagedObject PurchaseOrder。這可以在幾個不同的視圖中進行編輯和更改。大多數情況下,它始終是相同類型的更改,PurchaseOrder會使用另一個NSManagedObject客戶端的數據更新。共享方法來更新核心數據NSManagedObject?
我想這種類型的代碼移動到一個地方,所以我可以調用類似:
-(void) updatePurchaseOrder: (PurchasOrder *) aPurchaseOrder withClient:(Client *) aClient withManagedObjectContext: (NSManagedObjectContext *) aManagedObjectContext {
// update code goes here
}
這是一個壞主意,或者是一個災難?我有我使用的已經是一個共享的實例類(以下位的小點點):
static SharedFunctions* singletonInstance = nil;
-(id)init
{
if ((self = [super init]))
{
}
return self;
}
+(SharedFunctions*)sharedInstance
{
@synchronized(self) {
if (singletonInstance == nil)
{
singletonInstance = [[SharedFunctions alloc] init];
}
}
return singletonInstance;
}
我稱之爲功能是這樣的:
[[[SharedFunctions] sharedInstance] myMethod];
這一直是我運作良好。思考?
如果你正在傳遞一切必要的參數,爲什麼單身的開銷?只需創建一個類方法。 – 2011-06-08 16:48:16