###### tags: `CleanCode` <STYLE> p,li,oi,h3{ font-family:"微軟正黑體"; } </STYLE> # 系統 劃分程式的建造邏輯與執行過程。就由主函式**main**來劃分。 :::info * 將所有與建造相關的程式碼都移至main函式,再由main函式建造系統所需的物件,傳遞給應用程式。 * 也就是以一支專門用來呼叫其他function的主函式(main)進行執行的部分(ex: public static void main()) :::  # #### 相依性注入(Dependency Injection, DI) 這是控管反轉(Inversion of Control,IoC)在相依性管理中的一種應用方式。 > 控管反轉:將某物件的第二個職責交由其他專注於該職責的物件,通常為主程序的container(容器) > 相依性管理:一個物件不應該負責實體化與本身的相依,此責任應交由另一個機制,因而進行控管權反轉。 類別會提供用來注入相依性的設定者方法(setter method)或建構子參數,在建立的過程中,由DI容器實體化所需物件。 # #### EJB(Enterprise(企業) JavaBean) 是一種Java EE组件,通常用於企業應用程式中封装商業邏輯。 用來解決永久性、安全性和交易的方式。預期會使用**AOP(剖面導向程式設計)** 來達成。 > 1. **AOP(aspect-oriented programming)**:一種恢復橫切關注點成為模組的方式。 > 2. 橫切關注點:除了主關注點可以分解方式捕捉外,其他沒有被捕捉到的關注點的實作程式碼會散在各處。這些關注點(同主關注點)是橫切的。 > 3. 關注點(Concern):由部分有意義的、可管理的小程式組成,一個關注點通常只有同一個特定概念或目標。 > 4. 剖面(Aspect):提供一種輔助的模組化機制,用來說明系統中那些關注點需要以某些一致性方式來修改。 # #### JAVA代理機制(Java proxies) 適用於簡單的情況,如:在個別物件或類別中呼叫包裹方法(wrapping method)。 代理機制在JAVA的框架中都有內建支援(Spring AOP和JBoss AOP),因此可以純粹用Java程式碼來實現剖面設計。 # #### 總結 系統架構應包含模組化關注點的領域,每個關注點都由**普通舊式的Java物件**(Plain-Old Java Object, POJO)來實作。不同領域之間,利用最小侵入性的剖面工具將之整合。 透過撰寫POJO、使用剖面相關機制、非侵入性的組合實作的方式,使所有抽象層級的意圖都清楚可辨視。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up