假設(shè)需求:設(shè)計一個學(xué)生管理系統(tǒng),實現(xiàn)如果發(fā)現(xiàn)某班級中的一位同學(xué)犯錯誤,則全班同學(xué)每個人都扣除一個小紅花;
1、設(shè)計實體類;如圖:
2、映射數(shù)據(jù)表;
略
3、設(shè)計客戶端
a)由需求得知這里需要一個公開的懲罰方法:Punish(blunderStudent : Student);
b)由需求得知實現(xiàn)懲罰方法的算法:
i.通過某個學(xué)生得到該學(xué)生所在的班級:GetClass(classId : Integer) : Class
ii.通過班級得到該班的全部學(xué)生: GetStudentList(classId : Integer) : List<Student>
iii.循環(huán)所有學(xué)生,扣除每個人一個小紅花:SubFlower(blunderStudent : Student)
4、設(shè)計業(yè)務(wù)類
a)業(yè)務(wù)中有兩個方法需要學(xué)生業(yè)務(wù)類去實現(xiàn):GetClass(classId : Integer) : Class、SubFlower(blunderStudent : Student);
b)業(yè)務(wù)中有一個方法需要班級業(yè)務(wù)類去實現(xiàn):GetStudentList(classId : Integer) : List<Student>
5、設(shè)計持久層接口
a)學(xué)生業(yè)務(wù)類中的GetClass(classId : Integer) : Class方法需要通過持久層獲取對象;SubFlower(blunderStudent : Student)方法需要通過持久層保存對象;
b)班級業(yè)務(wù)類中的GetStudentList(classId : Integer) : List<Student>方法需要通過持久層獲取對象列
6、設(shè)計持久層
a)分別實現(xiàn)持久層接口
7、通過ORM工具實現(xiàn)持久層與數(shù)據(jù)表的關(guān)聯(lián)
略
8、根據(jù)不同的部署環(huán)境,選擇設(shè)計Web UI或WinForm UI,或其他用戶界面
略
附:整個類圖