共通モデルからJava言語とObjective-C言語の両方のソースコード生成させることは,同じアプリケーションをふたつの OSで開発する場合に開発工数を大幅に削減させる可能性があります。
図1:コード生成
車のUMLモデルを定義し,独自に開発したモデルコンパイラでコード生成しました。下記の「図1:のCarモデル」が定義 されたUMLモデルです。今回は,Carクラスのみをコード生成し,生成されたコードを「2. 生成されたJavaコード」 と「3. 生成されたObjective-Cコード」に示しています。
図1:Carモデル
public class Car { private String maker = ""; private ArrayListtires = null; public void changeTire() { // ID=[OP141014] (タイヤ交換のロジックの記述) } // ID=[OP141014] public final void setMaker(final String value) { this.maker = value; } public final String getMaker() { return this.maker; } public final void setTires(final ArrayList value) { this.tires = value; } public final ArrayList getTires() { return this.tires; }> }
@interface Car :NSObject
{ @public; NSString * maker; NSArray * tires; } - (void)init; - (void) changeTire; - (void)maker:(NSString *)value; - (NSString *) getMaker; - (void)tires:(NSArray *)value; - (NSArray *) getTires; @end @implementation Car - (void)init { maker=@""; tires=[NSArray alloc]; } - (void) changeTire { // ID=[OP141014] (タイヤ交換のロジックの記述) } // ID=[OP141014] - (void)maker:(NSString *)value { maker = value; } - (NSString *) getMaker { return maker; } - (void)tires:(NSArray *)value { tires = value; } - (NSArray *) getTires { return tires; } @end