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

Java課堂之程序中的套路(設(shè)計(jì)模式的介紹)

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

前言

本文主要是給大家簡(jiǎn)單地介紹一下設(shè)計(jì)模式的概念,文中會(huì)使用通俗易懂的案例,使你更好地學(xué)習(xí)本章知識(shí)點(diǎn)并理解原理,做到有道無(wú)術(shù)

一. 什么是設(shè)計(jì)模式

首先我們得知道什么是設(shè)計(jì)模式。所謂的設(shè)計(jì)模式(Design Pattern),其實(shí)就是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、提高代碼的可靠性。
這句話相信大家隨便上網(wǎng)查下就能找到,那到底什么是設(shè)計(jì)模式呢?又該如何正確地去使用呢?接下來(lái)就使用生活中通俗易懂的案例,來(lái)讓大家更淺顯地認(rèn)識(shí)設(shè)計(jì)模式。
Java課堂之程序中的套路(設(shè)計(jì)模式的介紹)

二. 生活中的設(shè)計(jì)模式

1. 約會(huì)方式

大家在與異性約會(huì)的時(shí)候,吃飯、逛街、看電影是不是大家首選的套路呢?不對(duì),是計(jì)劃。
而這種計(jì)劃(套路)對(duì)于程序而言其實(shí)就類似是一種設(shè)計(jì)模式,當(dāng)然這種設(shè)計(jì)模式就非常簡(jiǎn)單直白了。

這種大帥B,肯定是會(huì)用更高級(jí)的計(jì)劃(套路),比如帶對(duì)象去聽(tīng)聽(tīng)音樂(lè)會(huì)、看話劇、旅旅游、看看風(fēng)景、單手法拉利秀個(gè)車技什么的,會(huì)讓對(duì)方充滿對(duì)下次的期待感,從而提高匹配成功的概率,還提高了效率。
在程序中也是如此,我們使用設(shè)計(jì)模式以及使用更優(yōu)的設(shè)計(jì)模式會(huì)讓程序更有效率、提高維護(hù)性、降低代碼的冗余。

Java課堂之程序中的套路(設(shè)計(jì)模式的介紹)

2. 尋偶方式

如果你說(shuō)你沒(méi)對(duì)象,沒(méi)機(jī)會(huì)約會(huì),那就先找個(gè)對(duì)象吧。

在你需要尋找對(duì)象時(shí),有些時(shí)候你可能覺(jué)得在現(xiàn)實(shí)中去認(rèn)識(shí)一個(gè)新的異性會(huì)消耗的時(shí)間和精力很多,而且也不一定能從茫茫人海中找到自己心儀的異性。

如今的互聯(lián)網(wǎng)上有各種各樣的APP可供大家去認(rèn)識(shí)更多的人。從原本需要自己在現(xiàn)實(shí)中認(rèn)識(shí)異性,再通過(guò)接觸才能了解對(duì)方的信息,轉(zhuǎn)變成在APP上可以認(rèn)識(shí)到更多的人,甚至更快遇到心動(dòng)的異性,當(dāng)然也不一定是異性,不管如何這樣的轉(zhuǎn)變大大提高了效率。

而從程序的角度而言,自己收集信息轉(zhuǎn)換成在平臺(tái)上方便快捷地獲取到自己想要的數(shù)據(jù),提高了獲取結(jié)果的效率,這就是使用了設(shè)計(jì)模式的體現(xiàn)。

Java課堂之程序中的套路(設(shè)計(jì)模式的介紹)

3. 信號(hào)燈

出去約會(huì)最重要的是什么,來(lái)教你,最重要的是出去,不出門怎么行。

那去到這個(gè)交通發(fā)達(dá)的現(xiàn)代社會(huì)中,公路上的十字路口基本上都會(huì)有紅綠燈,這是生活中習(xí)以為常的信號(hào)燈了。如果不存在紅綠燈的話,可想而知會(huì)是怎么樣的場(chǎng)景。而紅綠燈的規(guī)則大家都很熟悉,紅燈停、綠燈行。這個(gè)信號(hào)燈改變了我們的行為,提高了道路的通行率,減少了車禍的發(fā)生。

按程序角度而言,從隨意通行轉(zhuǎn)換成需要觀察然后根據(jù)現(xiàn)象來(lái)決定行為,提高了運(yùn)行效率,減少了錯(cuò)誤的發(fā)生,這也是使用了設(shè)計(jì)模式的體現(xiàn)。

Java課堂之程序中的套路(設(shè)計(jì)模式的介紹)

三. 設(shè)計(jì)模式分類

GoF(指Gamma, Helm, Johnson & Vlissides, Addison-Wesley四人)于2005年提出的23種常用的設(shè)計(jì)模式,分為三大類型,分別是:

1. 創(chuàng)建型模式

關(guān)注對(duì)象的實(shí)例化用于解耦對(duì)象實(shí)例化過(guò)程

  1. 單例模式:一個(gè)類只存在一個(gè)實(shí)例對(duì)象
  2. 工廠模式:根據(jù)傳入的數(shù)據(jù)決定返回的對(duì)象
  3. 抽象工廠模式:根據(jù)相關(guān)對(duì)象的父類獲取對(duì)象,無(wú)需明確具體的類
  4. 建造者模式:根據(jù)步驟通過(guò)一個(gè)復(fù)雜的創(chuàng)建過(guò)程獲取對(duì)象
  5. 原型模式:復(fù)制原有的實(shí)例創(chuàng)建出新的實(shí)例

2. 結(jié)構(gòu)型模式

關(guān)注類與對(duì)象的結(jié)合,形成更強(qiáng)大的結(jié)構(gòu)

  1. 裝飾者模式:動(dòng)態(tài)地給對(duì)象添加功能
  2. 代理模式:給對(duì)象分配代理,通過(guò)代理來(lái)控制對(duì)象的訪問(wèn)
  3. 橋接模式:把抽象部分和實(shí)現(xiàn)部分分離開(kāi),使之能夠獨(dú)立變化
  4. 適配器模式:把類的方法接口轉(zhuǎn)換成需要的方法接口
  5. 組合模式:把對(duì)象以樹(shù)的結(jié)構(gòu)表示出層級(jí)關(guān)系
  6. 外觀模式:給系統(tǒng)提供對(duì)外訪問(wèn)統(tǒng)一的方法
  7. 亨元模式:使用共享技術(shù)減少對(duì)象的產(chǎn)生

3. 行為型模式

關(guān)注類與對(duì)象的交互,劃分職責(zé)和算法

  1. 觀察者模式:定義對(duì)象之間一對(duì)多的依賴關(guān)系
  2. 策略模式:封裝一系列算法,可以交替使用
  3. 模板方法模式:定義一個(gè)算法結(jié)構(gòu),允許子類為一個(gè)或多個(gè)步驟提供實(shí)現(xiàn)。
  4. 迭代器模式:使用統(tǒng)一的方式遍歷集合對(duì)象,無(wú)需了解集合對(duì)象的底層
  5. 命令模式:對(duì)命令進(jìn)行封裝,把發(fā)出命令和執(zhí)行命令分隔開(kāi)
  6. 備忘錄模式:保存對(duì)象的狀態(tài),在需要的時(shí)候恢復(fù)對(duì)象
  7. 中介模式:讓程序的組件通過(guò)中介對(duì)象來(lái)進(jìn)行間接溝通
  8. 解釋器模式:定義一個(gè)語(yǔ)言,并通過(guò)定義的解釋器來(lái)表示
  9. 狀態(tài)模式:使對(duì)象在內(nèi)部狀態(tài)改變時(shí)改變行為
  10. 責(zé)任鏈模式:把每個(gè)對(duì)象對(duì)其下個(gè)對(duì)象的引用連接成一條鏈,每個(gè)對(duì)象只負(fù)責(zé)各自的業(yè)務(wù)
  11. 訪問(wèn)者模式:不改變數(shù)據(jù)結(jié)構(gòu)的前提下,將作用于元素的操作封裝成獨(dú)立的類

這里有一個(gè)口訣可以幫助大家快速記憶:

單原建工象

代適橋裝外組享

狀觀中迭備解訪

命責(zé)模策

當(dāng)然除了這23種設(shè)計(jì)模式外,其實(shí)還有一些其他的設(shè)計(jì)模式。

四.設(shè)計(jì)原則

設(shè)計(jì)模式的構(gòu)建是要遵循一定的原則的,并不是我們想怎么玩就怎么玩,而這個(gè)原則就是所謂的設(shè)計(jì)原則,下面就給大家簡(jiǎn)單說(shuō)說(shuō)都有哪些設(shè)計(jì)原則。

1. 開(kāi)閉原則

對(duì)外部擴(kuò)展開(kāi)放,對(duì)內(nèi)部修改關(guān)閉。

2. 接口隔離原則

客戶端不依賴不需要的接口,類與類的依賴建立在最小的接口上。

3. 合成復(fù)用原則

類與類之間盡可能使用合成或者聚合,減少繼承的使用。

4. 里氏替換原則

任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)。

5. 最少原則(迪米特法則)

對(duì)象與對(duì)象之間盡可能少交互。

6. 單一職責(zé)原則

對(duì)于一個(gè)類,應(yīng)該 只有一個(gè)引起該類變化的原因。

7. 依賴倒置原則

程序應(yīng)該依賴于抽象接口,不依賴具體實(shí)現(xiàn)。

這里還有個(gè)口訣,方便大家快速記住以上原則:開(kāi)口合里最單依。

五. 總結(jié)

最后給大家總結(jié)一下,設(shè)計(jì)模式其實(shí)就像咱們的人生一樣,出生,成長(zhǎng),成熟,衰老,死亡,這都是定律。

但是有些人活得稀里糊涂,有些人卻活得很精彩,就是因?yàn)檫@些人懂得如何用合適的方式去更好的生活??偠灾?,設(shè)計(jì)原則是生活中的行為準(zhǔn)則,遵循著一定的行為準(zhǔn)則而形成的流程、模式則是設(shè)計(jì)模式。后續(xù)我們會(huì)推出各個(gè)設(shè)計(jì)模式的詳細(xì)講解文章,敬請(qǐng)期待哦!

Java課堂之程序中的套路(設(shè)計(jì)模式的介紹)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-476941.html

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

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(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)文章

  • 設(shè)計(jì)模式-外觀模式在Java中的使用示例

    設(shè)計(jì)模式-外觀模式在Java中的使用示例

    外觀模式是一種使用頻率非常高的結(jié)構(gòu)型設(shè)計(jì)模式,它通過(guò)引入一個(gè)外觀角色來(lái)簡(jiǎn)化客戶端與子系統(tǒng) 之間的交互,為復(fù)雜的子系統(tǒng)調(diào)用提供一個(gè)統(tǒng)一的入口,降低子系統(tǒng)與客戶端的耦合度,且客戶端調(diào)用非常方便。 示例 自己泡茶和去茶館喝茶的區(qū)別,如果是自己泡茶需要自

    2024年02月17日
    瀏覽(24)
  • Java中的23種設(shè)計(jì)模式

    ? ? ? ? 單例模式是 Java 中最簡(jiǎn)單的設(shè)計(jì)模式之一。通過(guò)單例模式,可以保證系統(tǒng)中,應(yīng)用了單例模式的類,只有一個(gè)對(duì)象實(shí)例。包括五種:餓漢式、懶漢式、雙重校驗(yàn)、靜態(tài)內(nèi)部類、枚舉類。 1.1 餓漢式 特點(diǎn):類加載時(shí)就初始化, 避免了線程同步的問(wèn)題,是線程安全的。

    2024年02月06日
    瀏覽(21)
  • JAVA設(shè)計(jì)模式第七講:設(shè)計(jì)模式在 Spring 源碼中的應(yīng)用

    JAVA設(shè)計(jì)模式第七講:設(shè)計(jì)模式在 Spring 源碼中的應(yīng)用

    設(shè)計(jì)模式(design pattern)是對(duì)軟件設(shè)計(jì)中普遍存在的各種問(wèn)題,所提出的解決方案。本文以面試題作為切入點(diǎn),介紹了設(shè)計(jì)模式的常見(jiàn)問(wèn)題。 我們需要掌握各種設(shè)計(jì)模式的原理、實(shí)現(xiàn)、設(shè)計(jì)意圖和應(yīng)用場(chǎng)景,搞清楚能解決什么問(wèn)題 。 本文是第七篇:設(shè)計(jì)模式在 Spring 源碼中的

    2024年02月09日
    瀏覽(28)
  • 簡(jiǎn)化代碼結(jié)構(gòu)與提高靈活性:學(xué)習(xí)Java設(shè)計(jì)模式中的裝飾器模式

    簡(jiǎn)化代碼結(jié)構(gòu)與提高靈活性:學(xué)習(xí)Java設(shè)計(jì)模式中的裝飾器模式 在軟件開(kāi)發(fā)中,我們經(jīng)常會(huì)遇到需要在不修改現(xiàn)有代碼的情況下,對(duì)已有對(duì)象進(jìn)行功能擴(kuò)展或修改的需求。此時(shí),裝飾器模式就是一種非常有用的設(shè)計(jì)模式,它通過(guò)動(dòng)態(tài)地將責(zé)任附加到對(duì)象上,來(lái)擴(kuò)展對(duì)象的功能

    2024年02月16日
    瀏覽(15)
  • Java程序中常用的設(shè)計(jì)模式有哪些和該種設(shè)計(jì)模式解決的痛點(diǎn)

    設(shè)計(jì)模式是大量程序員智慧的結(jié)晶,是優(yōu)秀的代碼范式,是以前那些大佬程序員的編程經(jīng)驗(yàn)總結(jié),非常值得學(xué)習(xí)。 在軟件開(kāi)發(fā)中,有許多常用的設(shè)計(jì)模式,每種模式都解決了特定類型的問(wèn)題。以下是一些常見(jiàn)的設(shè)計(jì)模式及其簡(jiǎn)要介紹: 單例模式 (Singleton): 定義:確保類只有一

    2024年02月09日
    瀏覽(18)
  • 【Java基礎(chǔ)教程】(十八)包及訪問(wèn)權(quán)限篇 · 下:Java編程中的權(quán)限控制修飾符、單例設(shè)計(jì)模式 (Singleton)和多例設(shè)計(jì)模式的綜合探析~

    【Java基礎(chǔ)教程】(十八)包及訪問(wèn)權(quán)限篇 · 下:Java編程中的權(quán)限控制修飾符、單例設(shè)計(jì)模式 (Singleton)和多例設(shè)計(jì)模式的綜合探析~

    掌握J(rèn)ava 中的4種訪問(wèn)權(quán)限; 掌握J(rèn)ava 語(yǔ)言的命名規(guī)范; 掌握單例設(shè)計(jì)模式與多例設(shè)計(jì)模式的定義結(jié)構(gòu); 對(duì)于封裝性,實(shí)際上之前只詳細(xì)講解了 private , 而封裝性如果要想講解完整,必須結(jié)合全部4種訪問(wèn)權(quán)限來(lái)看,這4種訪問(wèn)權(quán)限的定義如下表所示。 范圍 private default protected

    2024年02月16日
    瀏覽(36)
  • 黑馬程序員 Java設(shè)計(jì)模式學(xué)習(xí)筆記(一)

    黑馬程序員 Java設(shè)計(jì)模式學(xué)習(xí)筆記(一)

    目錄 一、設(shè)計(jì)模式概述 1.1、23種設(shè)計(jì)模式有哪些? 1.2、軟件設(shè)計(jì)模式的概念 1.3、學(xué)習(xí)設(shè)計(jì)模式的必要性 1.4、設(shè)計(jì)模式分類 二、UML圖 2.1、類圖概述 2.2、類圖的作用 2.3、類圖表示法 類的表示方式 類與類之間關(guān)系的表示方式 關(guān)聯(lián)關(guān)系 聚合關(guān)系 組合關(guān)系 依賴關(guān)系 繼承關(guān)系

    2024年01月19日
    瀏覽(29)
  • JAVA8-lambda表達(dá)式8:在設(shè)計(jì)模式-模板方法中的應(yīng)用

    JAVA8-lambda表達(dá)式1:什么是lambda表達(dá)式 JAVA8-lambda表達(dá)式2:常用的集合類api JAVA8-lambda表達(dá)式3:并行流,提升效率的利器? JAVA8-lambda表達(dá)式4:Optional用法 java8-lambda表達(dá)式5:toMap引發(fā)的線上故障 JAVA8-lambda表達(dá)式6:重構(gòu)和定制收集器 JAVA8-lambda表達(dá)式7:重要的函數(shù)接口 最近在公司

    2024年02月14日
    瀏覽(29)
  • 設(shè)計(jì)模式:生活中的組合模式

    想象一下,你正在組織一個(gè)大型的家庭聚會(huì)。在這個(gè)聚會(huì)中,你需要準(zhǔn)備各種菜肴,每個(gè)菜肴又包含不同的食材。你的目標(biāo)是能夠以統(tǒng)一的方式處理整個(gè)聚會(huì)的準(zhǔn)備工作,不論是處理單個(gè)食材還是一整道菜肴。 在這個(gè)場(chǎng)景中,我們可以將“菜肴”看作是組合對(duì)象,“食材”看

    2024年04月11日
    瀏覽(19)
  • 設(shè)計(jì)模式:生活中的迭代器模式

    迭代器模式可以通過(guò)日常生活中的餐廳菜單遍歷來(lái)類比。想象一下,你走進(jìn)一家餐廳,服務(wù)員給了你一本菜單。這本菜單就像是一個(gè)聚合對(duì)象,它包含了各種菜品。你可以一頁(yè)一頁(yè)地翻閱菜單,這個(gè)翻閱的過(guò)程就像是使用迭代器來(lái)遍歷聚合對(duì)象的元素。 生活場(chǎng)景類比 在這個(gè)

    2024年04月11日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包