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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...