人々がオブジェクトをどのように設計し、プログラムで設計パターンを使用するのか疑問に思っています。
例えば:
2 種類の車 (BMW、Benz) と 2 つの色 (Black、White) があるとしますが、color オブジェクトは既に 2 つのメソッドで存在しています。
[Color initWithBlack];
[Color initWithWhite];
.h ファイルで 2 つのメソッドを定義する
- (Car *)makeWithType:(NSString *)type;
- (Car *)makeWithType:(NSString *)type andColor:(NSString *)color;
.m ファイル内
- (Car *)makeWithType:(NSString *)type
{
// default is black
return [self makeWithType:type andColor:@"black"];
}
- (Car *)makeWithType:(NSString *)type andColor:(NSString *)color
{
Car *car = [[Car alloc] init];
car.type = type;
switch(color) {
case "black":
[car addColor:[Color initWithBlack]];
break;
case "white":
[car addColor:[Color initWithWhile]];
break;
default:
break;
}
return car;
}
オブジェクトを定義および実装する適切な方法ですか?
疎結合または密結合の依存関係はありますか?
きつい場合、カップリングを減らすために設計をどのように改善できますか?