私は目的を学ぼうとしているだけです-c。
さまざまな言語にわたるAbstractFactoryパターンのウィキペディアの例を見てきました。
ボタンの定義は次のとおりです。
@protocol Button
- (void)paint;
@end
@interface WinButton : NSObject <Button>
@end
これが工場です:
@implementation WinFactory
- (id)createButton {
return [[[WinButton alloc] init] autorelease];
}
@end
私の知る限り、obj-cのid
キーワードはC#var
やC ++ 11のようなものでなければなりませauto
んよね?
だから私は私の質問です:
なぜファクトリが指定されていない型のジェネリックオブジェクトを返すようにするのですか?これはエラー(ファクトリがボタン以外のものを返すようにする)ですか、それともそれを行う理由がありますか?
私はこのように工場を書きます:
@implementation WinFactory
- (id<Button>)createButton {
return [[[WinButton alloc] init] autorelease];
}
@end
私が間違っている?