EA15使用指南
因為之前曾有過用Python編寫純面向對象代碼的痛苦經歷設計模式 by Python1:策略模式。所以我又想起了多年前的老伙計EA。
我們來看下多年過去了,EA是否在編寫Python工程時依然好用。
下載&&安裝
這里下載安裝的是腳本之家的版本,頁面在這里。
額外提供一個百度盤:
鏈接:https://pan.baidu.com/s/1p2-JZwJiY_bd3Nut-muq6A
提取碼:dilh
復制這段內容后打開百度網盤手機App,操作更方便哦
版本是15.0,官方最新是15.2,應該區別不大。
安裝好本體后需要使用crack文件夾下的exe替換安裝目錄下的exe。
構建類圖
打開EA,點擊左上角的圖標新建項目。
起一個項目名稱,我這里就叫test2好了。
新建好后的頁面應該和我現在的差不多,可能會有個歡迎頁面,不過差不多。
先要在工程下新建一個包,點擊Browser下的文件夾圖標:
起一個名字后點擊ok,然后會出現一個窗口:
我理解這個窗口是預設模板,可以快速構建一些特定的類圖啥的,我們這里直接關閉這個窗口就行了。
現在我們的包建好了,需要在包里添加視圖,我們的類圖和活動圖等都是創建在視圖上的。點擊包右邊的小圖標添加視圖:
我這里構建的是類圖,這樣選擇視圖類型:
好了,我們的類圖創建好了。
我們現在需要做的就是添加類等類圖組件,這一步我折騰了半天,硬是找不到組件工具欄,后來發現的時候相當無語。居然是在類圖標簽左邊的小圖標>>
,點擊一下即可展開組件工具欄。
通過拖拽,我們可以簡單添加類
我們現在要加上繼承關系,選擇子類,點擊右上角小箭頭,進行拖拽到父類:
在彈出的菜單中選擇Generalization:
- Generalization在UML中准確的講是表示泛化關系,但在類圖中就是表示繼承關系。
- 更詳細的UML介紹可以看這里。注意,這個是個山寨w3school網站,真身是沒有UML相關教程的。
我們用同樣的方法還可以把類關聯到接口上,當然這時候選擇關系為Realization(實現)。
與之類似的,我們可以給接口和抽象類Carrier加上聚合關系,此時我們可以通過TakeoffMode
拖拽箭頭到Carrier
,然后選擇Composition to whuole
,即組合到整體。
Aggregation是聚合,Composition是組合,這兩者很容易傻傻分不清,我在某個地方看到的例子非常好,大雁和雁群是聚合關系,翅膀和大雁是組合關系。
我們還可以在關系上添加數目,即1對1關系,雙擊關系,在彈出的窗口中選擇Role,並填入1:
現在該給類加入屬性和方法了,選定一個類,在右側Properties窗口的小圖標下拉菜單中選擇Attributes
。
視圖下方會打開一個管理屬性的窗口,我們可以在這里快速添加屬性:
可以用同樣的方式添加方法:
經過一番設置后,我們可以完成一個簡單的類圖:
最后我們再修改一下類的層級:
我們現在有了類圖,可以嘗試導出代碼了。
導出代碼
先修改相關設置:
我們把項目默認語言改為自己常用的語言:
還需要修改我們項目的源碼類型,在包上右鍵選擇properties>properties:
在打開的窗口右側選擇源碼語言為你的目標語言:
導出源碼的功能我同樣找了好半天,以前老版本是直接在包上右鍵菜單就有,新版難找的一B:
在打開的窗口中選擇如下設置后點擊生成:
大功告成。可以用VSCode打開項目看一下:
這里要特別說明一下,如果你遇到和我一樣,不管怎么設置,導出代碼都是原本默認的Java代碼的話,那你要檢查一下項目所有類的property中的language:
這里有個大坑,如果是在類圖創建好后再改項目語言,只有你改的那個包的語言會變,包下面的子包和類以及視圖的語言都是不會變的,你需要手動一個個把那些都改成Python,這樣你導出的程序才是Python,否則不管你怎么弄都是Java。這個設定無比坑爹!
這個問題我原本還以為是15.0版本的bug,后來找了最新的15.2安裝,依然有,最后我還去下了另外一個建模工具VP,最終還是偶然間發現問題原來出在設置上。
所以使用EA的時候最好一開始就設定好語言。