Java 工程解耦即高內聚低耦合

来源:https://www.cnblogs.com/liaowanzhong/p/18404446
-Advertisement-
Play Games

工程結構和模塊不斷地從 JAVA 的單體應用中分離 。單體應用結構只有一個項目結構,有一 個項目文件包 。 剛開學習電腦 JAVA 編程的時候,JAVA 項目分為 JAVAEE 和 JAVASE. 標 準的 JAVA 類庫 jdk 是基礎的JAVA 開發工具箱,沒有綁定任何商業開發的工具包 。企業 ...


 

 

工程結構和模塊不斷地從 JAVA 的單體應用中分離 。單體應用結構只有一個項目結構,有一 個項目文件包 。 剛開學習電腦 JAVA 編程的時候,JAVA 項目分為 JAVAEE  JAVASE.  標 準的 JAVA 類庫 jdk  是基礎的JAVA 開發工具箱,沒有綁定任何商業開發的工具包 。企業級 別的開發標準是 JAVAEE. JAVAME  是移動嵌入式設備的縮減版本開發包 。 工程 project 在學  JAVASE  開發的時候是沒有這麼清楚的概念。

 

JAVASE   Java 開發工具箱的基礎類庫標準版本 。類庫的標準版本包括了 Java 程式設計語 言的通用 API 集合介面和常用類 。通向企業的開發包版本是 jdk1.6 。高內聚低耦合,配置編 程,解耦的一種實現方式。程式的耦合度意味著程式與程式之間藕斷絲連,相互影響的程度 很高。程式設計的某個地方出錯對整個可運行的應用程式影響太大,就是程式之間耦合度過 高。

 

解耦這個辭彙在 2017 年使用 Java spring 框架開發項目後臺介面的時候從有經驗的軟體工程 師咨詢過來 。很多初級 Java 應用開發工程師對 spring 的配置文件 xml 的配置很是不能很好 的理解。知道一個控制器或者是業務邏輯層面編寫好之後是要在 spring context  容器中配置 之後項目才能正確運行。沒有 spring 的項目也是需要配置 servlet 容器。Java service page   jdk1.6  版本發佈之後,面向 web 服務和 PC 瀏覽器頁面的一個企業級的開發版本。容器的原 始基於 servlet 容器 。後來在 servlet 容器的基礎之上打包封裝, 增加組件插件 。 比較典型的 Java web  開發框架是 Struts1 和 Struts2.  很多重用的介面需要封裝,靈活性可變性比較高的 部分抽取出來線程配置化的變數 。Java 的源代碼文件編譯成功之後發佈到 web 伺服器的文 件類型是位元組碼文件,不能線上編輯該文件。Xml 文件和 properties 文件是程式應用發佈之 後部署使用配置可編輯的介面。


程式解耦在一個小部件失效之後可以靈活替換 。Java 程式分層解耦,通過依賴 dependency  註入 DI(dependency injection)  調用服務組合 。封裝是高內聚的具體實現 。 Ecapsula iton    裝方法塊成為獨立的供外部調用函數單元。函數單元或者是方法單元內聚,可讀性,可行性, 可維護性, 可擴展性需要得到保證。

 

Java 項目的單體應用 JavaSE  是函數式編程 。代碼的管理需要得到很高的重視 。應用程式編  程項目的代碼編程過程中管理不好會變得很複雜很亂,增加程式出錯的可能性。編寫程式源  代碼的過程時間很短, 現在有智能的集成開發環境 IDE  協助下, 編碼拼寫錯誤可以有效  避免。項目源代碼分包存放,分層編寫。應用程式文件包後來在開發中也是多項目制 。每一  層的開發都可以打包成項目jar  ,通過 Maven 項目構建相互引用 。 Maven  專業程度很高  的構建 Java 項目,無論是遠程倉庫還是私有倉庫,基於網路分散式存儲構建打包 Java 項目。 項目與項目之間可以相互調用引用。

 

使用組合可以實現高內聚低耦合。電腦的資源或者是可以攜帶的資源有限,性能方面是最 重要的指標 。繼承 inheritance  邏輯空間和物理空間都在重覆利用 。繼承需要使用得當,父 類對子類或者是父親介面對它衍生出來的介面影響很大。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • PLC Structured Text Object Oriented Programming PLC結構化文本(ST)——繼承(inheritance) 繼承的概念 繼承是面向對象程式設計中最重要的概念之一。繼承允許我們根據一個類來定義另一個類,這使得創建和維護應用程式變得更容易。同時也有利於重用 ...
  • PLC Structured Text Object Oriented Programming PLC結構化文本(ST)——屬性(Property) 屬性的定義 C# 中的屬性(Property)是類和結構體中用於封裝數據的成員。它們提供了一種方式來定義類成員的訪問和設置規則,通常用於隱藏欄位(Fi ...
  • 唬住了 50k ,唬不住就 5k 。這句話一直是 PHP 程式員之間相互吹捧、吹牛逼的笑點,每次面試過後都會撓撓頭上僅剩的幾根頭髮,回想自己是否吹牛逼會過了頭。 ...
  • 函數是 Python 中的一等公民,是一種可重用的代碼塊,用於封裝特定的邏輯;事件驅動框架是一種編程模式,它將程式的控制流轉移給外部事件,如用戶輸入、系統消息等,它事件驅動框架可以使用函數作為事件的處理邏輯。 ...
  • 9/9
    @目錄前言爬蟲步驟確定網址,發送請求獲取響應數據對響應數據進行解析保存數據完整源碼共勉博客 前言 本文寫了一個爬取視頻的案例,使用requests庫爬取了好看視頻的視頻,併進行保存到本地。後續也會更新selenium篇和DrissionPage篇。當然,爬取圖片肯定不止這三種方法,還有基於pytho ...
  • 雖然大多數公司還是用的JDK8但是也要去瞭解和學習一下新得東西 ## JDK8新特性(2014年初)(LTS版本) 1、Lambda表達式 2、函數式編程 3、介面可以添加預設方法和靜態方法,也就是定義不需要實現類實現的方法 4、方法引用 5、重覆註解,同一個註解可以使用多次 6、引入Optiona ...
  • TCP/IP協議 簡介 首先TCP/IP協議不只是表示TCP協議和IP協議兩種協議,而是一個協議簇。協議簇是什麼並不難理解,就是字面意思,一個由多個協議組合而成的集合體,其中最有代表性的就是TCP和IP這兩個協議,除了這兩個還有我們熟知的FTP、UDP等協議。當然我們下麵主要介紹的還是這兩位主角TC ...
  • 介紹 Redis 是一個開源的記憶體資料庫,它支持多種數據結構,並且常用於高速緩存、會話管理、消息隊列等場景。Redis 的全稱是 Remote Dictionary Server,是一種 key-value(鍵值對)存儲系統,能夠以極高的性能處理大量數據的讀寫操作。 Redis 的主要特點: 基於內 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...