ユースケース図

DDD

サンプルコード
class Blog {
static _id: number = 1;
id: number | null;
categoryId: number | null;
title: string | null;
text: string | null;
postDate: Date | null;
constructor(categoryId?: number, title?: string, text?: string, postDate?: Date) {
this.id = ((title) && (text)) ? Blog._id++ : null;
this.categoryId = categoryId ? categoryId : null;
this.title = title ? title : null;
this.text = text ? text : null;
this.postDate = postDate ? postDate : null;
}
create(categoryId: number, title: string, text: string): Blog {
// リポジトリ作成してDB登録処理をする
return new Blog(categoryId, title, text, new Date());
}
update(title: string, text: string): void {
// リポジトリ作成してDB更新処理をする
this.title = title;
this.text = text;
this.postDate = new Date()
}
delete(): void {
// DBの削除処理
this.id = null;
this.title = null;
this.text = null;
this.postDate = null;
}
}
class Category {
static _id: number = 1;
id: number | null;
categoryName: string | null;
displaySort: number | null;
constructor(categoryName?: string, displaySort?: number) {
this.id = ((categoryName) && (displaySort)) ? Category._id++ : null;
this.categoryName = categoryName ? categoryName : null;
this.displaySort = displaySort ? displaySort : null;
}
create(categoryName: string, displaySort: number): Category {
// リポジトリ作成してDB登録処理をする
return new Category(categoryName, displaySort);
}
update(categoryName: string, displaySort: number): void {
// リポジトリ作成してDB更新処理をする
this.categoryName = categoryName;
this.displaySort = displaySort;
}
delete(): void {
// DBの削除処理
this.id = null;
this.categoryName = null;
this.displaySort = null;
}
}
const category = new Category();
let categories: Category[] = [];
categories.push(category.create('JavaScript', 1))
categories.push(category.create('Python', 2))
categories.push(category.create('Go', 3))
categories.push(category.create('PHP', 4))
console.log(categories)
const blog = new Blog();
const blog1 = blog.create(categories[1].id as number, 'Typescriptについて', 'Typescriptは')
console.log(blog1)
参考サイト
- IDをAutoインクリメントするサンプル https://peopleandbits.wordpress.com/2013/04/09/auto-incrementing-object-ids-with-typescript/
https://typescript-jp.gitbook.io/deep-dive/future-javascript/classes