代碼的文件頭與備忘一中的一樣,這裏不再列出。因爲我一直在對博客進行修改,其他網站轉載的內容可能已經與原文不一樣,所以請關注51CTO中的原創文章。
示例三
% 51CTO陸巍的博客
\begin{center}
\begin{tikzpicture}
\begin{umlpackage}[x = 0, y = 0, draw = purple, fill = umlyellow]{Policy}
\umlsimpleclass[draw = purple]{Policy Layer}
\umlinterface[right = 1cm of Policy Layer, draw = purple]{Policy Service Interface}{}{}
\umluniassoc[draw = purple]{Policy Layer}{Policy Service Interface}
\end{umlpackage}
\begin{umlpackage}[x = 0, y = -4, draw = purple, fill = umlyellow]{Mechanism}
\umlsimpleclass[below = 2cm of Policy Service Interface, draw = purple]{Mechanism Layer}
\umlinterface[right = 1cm of Mechanism Layer, draw = purple]{Mechanism Service Interface}{}{}
\umluniassoc[draw = purple]{Mechanism Layer}{Mechanism Service Interface}
\end{umlpackage}
\begin{umlpackage}[x = 0, y = -8, draw = purple, fill = umlyellow]{Utility}
\umlsimpleclass[below = 2cm of Mechanism Service Interface, draw = purple]{Utility Layer}
\end{umlpackage}
\umlimpl[draw = purple]{Mechanism Layer}{Policy Service Interface}
\umlimpl[draw = purple]{Utility Layer}{Mechanism Service Interface}
\end{tikzpicture}
\\[0.4cm]\heiti 圖11.2 倒置的層次\song
\end{center}
效果如下:
說明:
1) 注意控制位置的方式有兩種,一種是設置座標,一種是使用相對位置,代碼中都有演示。
2) 這裏沒有過多修飾圖形,所以看上去並不美觀,請大家自行調整。
3) 相對於前兩個例子,這個例子中使用了一個自定義的顏色:umlyellow。另外繪圖支持那裏也有變動:\usetikzlibrary{arrows, positioning, shapes}。詳情請看備忘一中的文件頭代碼。