java更改包名称_更改Java包名称如何改变我的系统架构
生活随笔
收集整理的這篇文章主要介紹了
java更改包名称_更改Java包名称如何改变我的系统架构
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
java更改包名稱
即使只是少量更改角度,也可能對(duì)您如何使用系統(tǒng)產(chǎn)生深遠(yuǎn)影響。 假設(shè)您正在用Java編寫(xiě)Web應(yīng)用程序。 在系統(tǒng)中,您處理訂單,客戶和產(chǎn)品。 作為一個(gè)Web應(yīng)用程序,您的類包括諸如Controller,PersonRepository,CustomerController和OrderService之類的訂書(shū)釘。 您如何將課程組織成包? 有兩種基本的方法來(lái)構(gòu)建軟件包。 您可以專注于邏輯層,例如com.brodwall.myapp.controllers,com.brodwall.myapp.domain或com.brodwall.myapp.services.customer。 或者,您可以專注于域上下文,例如com.brodwall.myapp.customer,com.brodwall.myapp.orders和com.brodwall.myapp.products。 迄今為止,第一種方法最為普遍。 在我看來(lái),它也是最沒(méi)有幫助的。 如果圍繞領(lǐng)域概念而不是技術(shù)層來(lái)構(gòu)造軟件包,則可以通過(guò)以下幾種方式改變思維: 首先,也是最根本的,您的思維模型現(xiàn)在將與系統(tǒng)用戶的思維模型保持一致。 如果要求您實(shí)現(xiàn)典型功能,那么現(xiàn)在很可能將重點(diǎn)放在系統(tǒng)軟件包的嚴(yán)格子集中。 例如,向表單添加新字段將至少影響相應(yīng)域概念的表示邏輯,實(shí)體和持久層。 如果您的軟件包按層組織,則此更改將影響您的整個(gè)系統(tǒng)。 一句話:圍繞功能而非技術(shù)組織的系統(tǒng)具有更高的一致性。 這個(gè)技術(shù)術(shù)語(yǔ)意味著一個(gè)類的大部分依賴項(xiàng)都位于該類的附近。 其次,隨著軟件的發(fā)展,圍繞領(lǐng)域概念進(jìn)行組織將為您提供更多選擇。 當(dāng)一個(gè)包包含數(shù)十個(gè)類時(shí),您可能需要將其拆分為幾個(gè)包。 討論本身可以啟發(fā)人。 “也許我們應(yīng)該將客戶地址類別分離到com.brodwall.myapp.customer.address包中。 它似乎有自己的生活。” “是的,也許我們可以在需要地址的其他地方使用相同的類,例如供應(yīng)商?” “很酷,那么com.brodwall.myapp.address呢?” 或者,您可以確定應(yīng)該將訂單狀態(tài)代碼和付款狀態(tài)代碼放在“ com.brodwall.myapp.order.codes”包中。 另一方面,您有什么選擇拆分com.brodwall.myapp.controllers? 您可以為客戶,訂單和產(chǎn)品創(chuàng)建子包,但是這些子包可能只具有一個(gè)或兩個(gè)類。 最后,也許是最有趣的是,對(duì)包使用領(lǐng)域概念可以使您根據(jù)具體情況改變?cè)O(shè)計(jì)。 也許您確實(shí)需要一個(gè)OrderService來(lái)協(xié)調(diào)訂單的付款和運(yùn)輸,而ProductController僅需要帶有存儲(chǔ)庫(kù)的基本create-retrieve-update-delete功能。 一個(gè)ProductService只會(huì)給您帶來(lái)麻煩。 如果com.brodwall.myapp.services包中缺少ProductService,這可能會(huì)造成混淆,或者至少會(huì)給您帶來(lái)麻煩的感覺(jué),那就是出現(xiàn)了問(wèn)題。 另一方面,如果com.brodwall.myapp.product程序包中沒(méi)有Controller,則沒(méi)關(guān)系。 而且,大多數(shù)系統(tǒng)都有一些不錯(cuò)的零件,而有些則不太好。 如果您的服務(wù)包對(duì)您不起作用,那么您將無(wú)能為力。 但是,如果“產(chǎn)品”程序包爛了,您可以將其丟棄并重新實(shí)現(xiàn)它,而不會(huì)使整個(gè)系統(tǒng)陷入混亂狀態(tài)。 通過(guò)將實(shí)現(xiàn)某個(gè)功能所需的類彼此放在一起,并與實(shí)現(xiàn)其他功能所需的類分開(kāi),開(kāi)發(fā)人員在開(kāi)發(fā)一個(gè)功能時(shí)可以務(wù)實(shí)和創(chuàng)新,而不會(huì)負(fù)面影響其他功能。 不利的一面是,大多數(shù)開(kāi)發(fā)人員對(duì)應(yīng)用程序中的某些技術(shù)更滿意,而對(duì)其他技術(shù)則較不滿意。 圍繞功能而非技術(shù)進(jìn)行組織會(huì)迫使每個(gè)開(kāi)發(fā)人員考慮更多的技術(shù)挑戰(zhàn)。 一些程序員將其視為學(xué)習(xí)的動(dòng)力,而其他程序員似乎寧愿不必學(xué)習(xí)新知識(shí)。 如果花我的錢(qián)來(lái)創(chuàng)建功能,我就知道我想要什么樣的開(kāi)發(fā)人員。 細(xì)微的變化會(huì)產(chǎn)生很大的影響。 通過(guò)圍繞功能組織軟件,您可以獲得一個(gè)更加一致的系統(tǒng),可以進(jìn)行擴(kuò)展。 它可能會(huì)給您的開(kāi)發(fā)人員帶來(lái)挑戰(zhàn),但會(huì)降低實(shí)現(xiàn)功能所需的交接數(shù)量,并會(huì)挑戰(zhàn)開(kāi)發(fā)人員改善他們正在處理的應(yīng)用程序部分。 參考: Java 合伙人 Johannes Brodwall在“ 更大的盒子里的思考”博客中的更改Java包名稱如何改變了我的系統(tǒng)架構(gòu) 。翻譯自: https://www.javacodegeeks.com/2012/07/how-changing-java-package-names.html
java更改包名稱
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java更改包名称_更改Java包名称如何改变我的系统架构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何在Hibernate Search
- 下一篇: apache hive_通过6个简单的步