關於API的詳細解釋

2021-04-18 16:29:41 字數 1583 閱讀 9982

關於domain model的討論已經非常多了,炒炒冷飯,這裡是自己的一些做法。 以workitem(工作流裡的工作項)作為例子最開始的做法:乙個實體類叫做workitem,指的是乙個工作項或者稱為任務項 乙個dao類叫做workitemdao 乙個業務邏輯類叫做workitemmanager(或者叫做workitemservice) 主要看看workitemmanager,因為主要邏輯集中在這裡  

public

class

workitemmanager           

/*** 提交工作項      * 

@param

workitemid 工作項id      

*/public

void

commitworkitem(string workitemid)         

//否則把下一工作項啟用

else

}      }

workitem類裡有一些狀態轉換的邏輯,這樣避免直接呼叫get/set屬性方法  

public

class

workitem     

/*** 完成工作項      

*/public

void

complete()  }

接下來的做法:三個類不變,將workitemmanager打平,將邏輯移動到workitem  

public

class

workitemmanager           

/*** 提交工作項      * 

@param

workitemid 工作項id      

*/public

void

commitworkitem(string workitemid)      }

public

class

workitem         

//否則把下一工作項啟用

else

} }這樣帶來的好處是業務邏輯全部被封裝到domain model,domain model之間的互動變得非常的簡單,沒有頻繁的set/get,直接呼叫有業務語義的domain model的方法即可。問題在於單元測試時脫離不了spring的容器,workitemdao需要stub。我覺得這個問題不大,問題是domain model開始變得臃腫,在業務邏輯複雜時**行急劇膨脹。現在的做法以上三個類保持不變,增加乙個類workitemexecutor,將業務邏輯移步。  

public

class

workitem }

public

class

workitemexecutor           

/*** 提交工作項      * 

@param

workitemid 工作項id      

*/public

void

commitworkitem(workitem workitem)         

//否則把下一工作項啟用

else

}      }

關於 DDL DML DCL詳細解釋

1 1 ddl的概述 ddl data definition language 資料定義語言 用於操作物件和物件的屬性,這種物件包括資料庫本身,以及資料庫物件,像 表 檢視等等,ddl對這些物件和屬性的管理和定義具體表現在create drop和alter上。特別注意 ddl操作的 物件 的概念,物...

關於記憶體對齊詳細解釋

什麼是記憶體對齊?在用sizeof運算子求算某結構體所佔空間時,並不是簡單地將結構體中所有元素各自的空間相加,這裡涉及到記憶體對齊的問題。訪問未對齊的記憶體,處理器需要訪問兩次 資料先讀高位再讀低位然後進行拼接 而訪問對齊的記憶體,只需要一次。為了提高效率,所以進行記憶體對齊。windows的預設對...

關於堆和棧的詳細解釋

資料結構的棧和堆 首先在資料結構上要知道堆疊,儘管我們這麼稱呼它,但實際上堆疊是兩種資料結構 堆和棧。堆和棧都是把一些資料項按序排列的資料結構。1 棧 stack 棧就像只有乙個口的箱子,它是一種具有 後進先出 性質的資料結構,也就是說後存放的先取,先存放的後取。這就如同我們要取出放在箱子裡面底下的...