国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java設(shè)計(jì)模式_概述(設(shè)計(jì)模式類(lèi)型和基本原則)

這篇具有很好參考價(jià)值的文章主要介紹了Java設(shè)計(jì)模式_概述(設(shè)計(jì)模式類(lèi)型和基本原則)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、設(shè)計(jì)模式

設(shè)計(jì)模式(Design pattern)代表了最佳的實(shí)踐,是軟件開(kāi)發(fā)人員在軟件開(kāi)發(fā)過(guò)程中面臨一般問(wèn)題的解決方案,是眾多軟件開(kāi)發(fā)人員經(jīng)過(guò)相當(dāng)長(zhǎng)的一段時(shí)間的試驗(yàn)和錯(cuò)誤總結(jié)出來(lái)的。是優(yōu)秀程序猿的經(jīng)驗(yàn)結(jié)晶。
但不推薦剛?cè)腴T(mén)的開(kāi)發(fā)者學(xué)習(xí),哪怕把代碼搞的一塌糊涂,也要先將功能完成,初學(xué)者,邁過(guò)坑是必然的,只有對(duì)自己編寫(xiě)的代碼不滿意,你才會(huì)體會(huì)到設(shè)計(jì)模式的重要性,也才能更加理解。

二、四大類(lèi)型

設(shè)計(jì)模式可以分為四大類(lèi):創(chuàng)建型模式(Creational Patterns)、結(jié)構(gòu)型模式(Structural Patterns)、行為型模式(Behavioral Patterns)、J2EE 設(shè)計(jì)模式
1、 創(chuàng)建型模式;
特點(diǎn):這些設(shè)計(jì)模式提供了一種在創(chuàng)建對(duì)象的同時(shí)隱藏創(chuàng)建邏輯的方式,而不是使用 new 運(yùn)算符直接實(shí)例化對(duì)象。
好處:這使得程序在判斷針對(duì)某個(gè)給定實(shí)例需要?jiǎng)?chuàng)建哪些對(duì)象時(shí)更加靈活
包括:
(1)、 工廠模式(FactoryPattern);
(2)、 抽象工廠模式(AbstractFactoryPattern);
(3)、 單例模式(SingletonPattern);
(4)、 建造者模式(BuilderPattern;
(5)、 原型模式(PrototypePattern);
2、 結(jié)構(gòu)型模式;
特點(diǎn):這些設(shè)計(jì)模式主要處理類(lèi)或?qū)ο蟮慕M合,通過(guò)繼承或組合的方式獲得更靈活的結(jié)構(gòu),以適應(yīng)需求變化對(duì)對(duì)象結(jié)構(gòu)帶來(lái)的影響。
好處:簡(jiǎn)化系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),使其具有更好的可擴(kuò)展性和可維護(hù)性。
包括
(1)、 適配器模式(AdapterPattern);
(2)、 橋接模式(BridgePattern);
(3)、 過(guò)濾器模式(Filter、CriteriaPattern);
(4)、 組合模式(CompositePattern);
(5)、 裝飾器模式(DecoratorPattern);
(6)、 外觀模式(FacadePattern);
(7)、 享元模式(FlyweightPattern);
(8)、 代理模式(ProxyPattern);
3、 行為型模式;
特點(diǎn):這些設(shè)計(jì)模式專(zhuān)注于對(duì)象之間的通信和職責(zé)分配。它們通過(guò)類(lèi)繼承或?qū)ο蠼M合來(lái)劃分職責(zé),以應(yīng)對(duì)需求變化對(duì)多個(gè)交互對(duì)象的影響。
好處:有助于系統(tǒng)的行為管理,使得系統(tǒng)更加靈活和易于維護(hù)。
包括
(1)、 責(zé)任鏈模式(ChainofResponsibilityPattern);
(2)、 命令模式(CommandPattern);
(3)、 解釋器模式(InterpreterPattern);
(4)、 迭代器模式(IteratorPattern);
(5)、 中介者模式(MediatorPattern);
(6)、 備忘錄模式(MementoPattern);
(7)、 觀察者模式(ObserverPattern);
(8)、 狀態(tài)模式(StatePattern);
(9)、 空對(duì)象模式(NullObjectPattern);
(10)、 策略模式(StrategyPattern);
(11)、 模板模式(TemplatePattern);
(12)、 訪問(wèn)者模式(VisitorPattern);
4、 J2EE模式;
主要用于解決在企業(yè)級(jí)應(yīng)用開(kāi)發(fā)中的特定問(wèn)題。
包括:
(1)、 MVC模式(MVCPattern);
(2)、 業(yè)務(wù)代表模式(BusinessDelegatePattern);
(3)、 組合實(shí)體模式(CompositeEntityPattern);
(4)、 數(shù)據(jù)訪問(wèn)對(duì)象模式(DataAccessObjectPattern);
(5)、 前端控制器模式(FrontControllerPattern);
(6)、 攔截過(guò)濾器模式(InterceptingFilterPattern);
(7)、 服務(wù)定位器模式(ServiceLocatorPattern);
(8)、 傳輸對(duì)象模式(TransferObjectPattern);

三、設(shè)計(jì)原則

SOLID原則:(5條最核心原則):
1、單一職責(zé)原則 (Single Responsibility Principle, SRP)
一個(gè)類(lèi)應(yīng)該只有一個(gè)引起變化的原因。
理解:這意味著一個(gè)類(lèi)應(yīng)該只有一個(gè)職責(zé),當(dāng)職責(zé)變化時(shí),只需修改這個(gè)類(lèi)。這有助于保持類(lèi)的內(nèi)聚性,減少類(lèi)之間的耦合。
2、開(kāi)放封閉原則 (Open-Closed Principle, OCP)
軟件實(shí)體(類(lèi)、模塊、函數(shù)等)應(yīng)該是可擴(kuò)展的,但是不可修改的。
理解:這意味著當(dāng)需求變化時(shí),我們應(yīng)該通過(guò)添加新的代碼來(lái)滿足這些變化,而不是修改現(xiàn)有的代碼。這有助于保持系統(tǒng)的穩(wěn)定性和可維護(hù)性。
3、里氏替換原則 (Liskov Substitution Principle, LSP)
子類(lèi)型必須能夠替換它們的基類(lèi)型。
理解:這意味著派生類(lèi)(子類(lèi))必須能夠無(wú)差別地替換其基類(lèi)(父類(lèi)),并且程序的行為不會(huì)發(fā)生變化。這有助于確保代碼的正確性和可維護(hù)性。
4、接口隔離原則 (Interface Segregation Principle, ISP)
客戶(hù)端不應(yīng)該被強(qiáng)制依賴(lài)于它們不使用的接口。
理解:這意味著一個(gè)類(lèi)對(duì)另一個(gè)類(lèi)的依賴(lài)應(yīng)該是最小的,即一個(gè)接口應(yīng)該小而完備,只包含客戶(hù)端需要的方法。這有助于減少類(lèi)之間的耦合,提高系統(tǒng)的可維護(hù)性和靈活性。
5、依賴(lài)倒置原則 (Dependency Inversion Principle, DIP)
高層模塊不應(yīng)該依賴(lài)于低層模塊,它們都應(yīng)該依賴(lài)于抽象。
抽象不應(yīng)該依賴(lài)于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴(lài)于抽象。
理解:這意味著我們應(yīng)該依賴(lài)于抽象(接口或抽象類(lèi)),而不是具體的實(shí)現(xiàn)。這有助于減少類(lèi)之間的耦合,提高系統(tǒng)的可測(cè)試性和可擴(kuò)展性。

其他5條核心原則:
6、迪米特法則(最少知道原則):一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象保持最少的了解。也就是說(shuō),一個(gè)類(lèi)應(yīng)該盡量減少與其他類(lèi)的耦合度,只與它直接相關(guān)的類(lèi)進(jìn)行交互。
7、合成復(fù)用原則:盡量使用合成/聚合的方式,而不是使用繼承來(lái)實(shí)現(xiàn)代碼的復(fù)用。繼承雖然可以實(shí)現(xiàn)代碼的復(fù)用,但也可能導(dǎo)致類(lèi)的層次結(jié)構(gòu)過(guò)于復(fù)雜,破壞封裝性。通過(guò)合成,可以將已有的類(lèi)組合成新的類(lèi),達(dá)到復(fù)用的目的,同時(shí)保持類(lèi)的簡(jiǎn)單和清晰。
8、包內(nèi)原則:類(lèi)之間的依賴(lài)關(guān)系應(yīng)該盡量減少,盡量限制在包(package)內(nèi)部。這樣可以降低類(lèi)之間的耦合度,提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性。
9、無(wú)環(huán)依賴(lài)原則:系統(tǒng)中的依賴(lài)關(guān)系應(yīng)該形成一個(gè)無(wú)環(huán)的圖。也就是說(shuō),不應(yīng)該存在循環(huán)依賴(lài)的情況,因?yàn)檠h(huán)依賴(lài)可能導(dǎo)致代碼難以理解和維護(hù)。
10、穩(wěn)定抽象原則:抽象應(yīng)該比細(xì)節(jié)具有更強(qiáng)的穩(wěn)定性。這意味著在設(shè)計(jì)系統(tǒng)時(shí),應(yīng)該優(yōu)先考慮抽象的設(shè)計(jì),而不是過(guò)早地陷入具體的實(shí)現(xiàn)細(xì)節(jié)中。

學(xué)海無(wú)涯苦作舟?。?!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-861551.html

到了這里,關(guān)于Java設(shè)計(jì)模式_概述(設(shè)計(jì)模式類(lèi)型和基本原則)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 23種設(shè)計(jì)模式概述

    1. 提高代碼質(zhì)量和可維護(hù)性 :設(shè)計(jì)模式是經(jīng)過(guò)驗(yàn)證的解決方案,有助于解決常見(jiàn)的設(shè)計(jì)問(wèn)題。使用設(shè)計(jì)模式可以減少代碼冗余,增強(qiáng)代碼的可讀性和可維護(hù)性,并提高代碼的可靠性。 2. 提升開(kāi)發(fā)效率 :使用設(shè)計(jì)模式可以加速開(kāi)發(fā)過(guò)程,因?yàn)樵O(shè)計(jì)模式提供了一套經(jīng)過(guò)實(shí)踐檢驗(yàn)

    2024年01月24日
    瀏覽(19)
  • 【設(shè)計(jì)模式】二、UML 類(lèi)圖概述

    【設(shè)計(jì)模式】二、UML 類(lèi)圖概述

    UML類(lèi)圖:類(lèi)(對(duì)象)本身的組成和類(lèi)(對(duì)象)之間的各種靜態(tài)關(guān)系 依賴(lài)、泛化(繼承)、實(shí)現(xiàn)、關(guān)聯(lián)、聚合與組合 類(lèi)中用到了對(duì)方,那么他們之間就存在依賴(lài)關(guān)系 類(lèi)中用到了對(duì)方 如果是類(lèi)的成員屬性 如果是方法的返回類(lèi)型 是方法接收的參數(shù)類(lèi)型 方法中使用到 泛化關(guān)系實(shí)際上就

    2024年02月09日
    瀏覽(29)
  • 【深入理解 ByteBuf 之二】對(duì)象池設(shè)計(jì)模式概述

    對(duì)象池設(shè)計(jì)模式并不在經(jīng)典的 23 種設(shè)計(jì)模式之中,先說(shuō)我認(rèn)為實(shí)際上設(shè)計(jì)模式,這四個(gè)詞聽(tīng)著唬人,其實(shí)本質(zhì)上就是一種設(shè)計(jì)的想法思路罷了,然后把經(jīng)常會(huì)用到的一些思路整理出來(lái)就成了經(jīng)典的設(shè)計(jì)模式思路,重點(diǎn)其實(shí)在于運(yùn)用。 對(duì)象池原理 對(duì)象池是一種設(shè)計(jì)模式,旨在

    2024年02月02日
    瀏覽(28)
  • 設(shè)計(jì)模式和七大原則概述及單一職責(zé)原則詳解

    設(shè)計(jì)模式的目的 編寫(xiě)軟件過(guò)程中,程序員面臨著來(lái)自,耦合性,內(nèi)聚性以及可維護(hù)性,擴(kuò)展性,重用性等方面的挑戰(zhàn)。設(shè)計(jì)模式是為了讓程序,具有更好的 1.代碼重用性(相同代碼,不用重復(fù)編寫(xiě)) 2.可讀性(編程規(guī)范性,便于其他程序員的閱讀和理解) 3.可擴(kuò)展性(當(dāng)需要增加新

    2024年02月12日
    瀏覽(25)
  • 設(shè)計(jì)模式的藝術(shù)P1基礎(chǔ)—第1章 概述

    設(shè)計(jì)模式的藝術(shù)P1基礎(chǔ)—第1章 概述

    劉偉,2020 概述:4部分,26章。 P1:基礎(chǔ)(1-2章) P2:創(chuàng)建型設(shè)計(jì)模式(創(chuàng)建藝術(shù),3-8章) P3:結(jié)構(gòu)型設(shè)計(jì)模式(組合藝術(shù),9-15章) P4:行為型設(shè)計(jì)模式(交互藝術(shù),16-26章) 設(shè)計(jì)模式是面向?qū)ο筌浖_(kāi)發(fā)的入門(mén)功夫。 設(shè)計(jì)面向?qū)ο筌浖容^困難,而設(shè)計(jì)可復(fù)用的面向?qū)ο筌浖?/p>

    2024年01月16日
    瀏覽(15)
  • 《移動(dòng)互聯(lián)網(wǎng)技術(shù)》第九章 感知與多媒體: 了解質(zhì)感設(shè)計(jì)的基本原則和設(shè)計(jì)方法

    《移動(dòng)互聯(lián)網(wǎng)技術(shù)》第九章 感知與多媒體: 了解質(zhì)感設(shè)計(jì)的基本原則和設(shè)計(jì)方法

    ???? 博主 libin9iOak帶您 Go to New World.??? ?? 個(gè)人主頁(yè)——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動(dòng)形象??簡(jiǎn)單易學(xué)!歡迎大家來(lái)踩踩~?? ?? 《IDEA開(kāi)發(fā)秘籍》學(xué)會(huì)IDEA常用操作,工作效率翻倍~?? ???? 希望本文能夠給您帶來(lái)一定的幫助??文章粗淺,敬

    2024年02月11日
    瀏覽(26)
  • 設(shè)計(jì)模式的藝術(shù)P1基礎(chǔ)—2.1 uml概述

    設(shè)計(jì)模式的藝術(shù)P1基礎(chǔ)—2.1 uml概述 設(shè)計(jì)模式的藝術(shù)P1基礎(chǔ)—第2章 UML類(lèi)圖與面向?qū)ο笤O(shè)計(jì)原則 UML類(lèi)圖可用于描述每一個(gè)設(shè)計(jì)模式的結(jié)構(gòu)以及對(duì)模式實(shí)例進(jìn)行說(shuō)明,而模式結(jié)構(gòu)又是設(shè)計(jì)模式解法的核心組成部分。學(xué)一個(gè)設(shè)計(jì)模式,如果不能繪制和理解其結(jié)構(gòu)圖,基本上等于沒(méi)學(xué)

    2024年02月02日
    瀏覽(16)
  • 《語(yǔ)音識(shí)別模式、算法設(shè)計(jì)與實(shí)踐》——第一章 語(yǔ)音識(shí)別概述

    《語(yǔ)音識(shí)別模式、算法設(shè)計(jì)與實(shí)踐》——第一章 語(yǔ)音識(shí)別概述

    本專(zhuān)欄僅為本人學(xué)習(xí)研讀體會(huì)分享,以及實(shí)際完成的測(cè)試代碼。更加詳細(xì)內(nèi)容詳見(jiàn)該書(shū)。 定義: 語(yǔ)音識(shí)別是讓機(jī)器具備自動(dòng)接收和分析人類(lèi)的語(yǔ)音,并最終輸出對(duì)應(yīng)文本的過(guò)程。 目標(biāo): 將輸入語(yǔ)音轉(zhuǎn)化為文字的輸出 ???????????????? 目標(biāo)實(shí)現(xiàn)條件: 提前規(guī)定好該系

    2024年04月12日
    瀏覽(91)
  • 【一起學(xué)Rust | 設(shè)計(jì)模式】新類(lèi)型模式

    【一起學(xué)Rust | 設(shè)計(jì)模式】新類(lèi)型模式

    新的類(lèi)型模式提供封裝以及保證在編譯時(shí)提供正確類(lèi)型的值。新類(lèi)型模式有多種用途和好處,比如可以處理不同的crate中的結(jié)構(gòu)體和特質(zhì)的關(guān)系。本期我們將一起探討一下Rust設(shè)計(jì)模式中的新類(lèi)型模式。 本期內(nèi)容是學(xué)習(xí)Rust設(shè)計(jì)模式筆記 如果在某些情況下,我們希望一個(gè)類(lèi)型的

    2023年04月08日
    瀏覽(23)
  • 【C++設(shè)計(jì)模式】用簡(jiǎn)單工廠模式實(shí)現(xiàn)按汽車(chē)重量輸出汽車(chē)類(lèi)型

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包