tag 面向對象設計模式

標籤
貢獻5
92
04:49 PM · Nov 05 ,2025

@面向對象設計模式 / 博客 RSS 訂閱

eacape - 狀態模式

狀態模式的定義是允許對象通過改變其狀態的方式改變它的行為。 狀態模式中有以下幾種角色 上下文類:用於記錄狀態、修改狀態,行為的調用等 抽象狀態類:所有用於表示同一類狀態的類的父類,並定義了一個行為接口 具體狀態類:不同狀態的具體實現 下面是使用狀態模式對一個打印機行為的一種實現。 上下文類 public class PrinterContext { private Printe

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

註銷 - 面向對象軟件設計中常見的問題 - 為什麼要定義類的私有方法

"為什麼要定義私有方法?"這是一個在面向對象軟件設計中常見的問題,涉及到封裝性、安全性和設計靈活性等方面的考慮。首先,讓我們來看看為什麼要使用私有方法。 封裝性(Encapsulation): 面向對象編程的一個基本原則是封裝,即將對象的內部細節隱藏起來,只暴露必要的接口給外部。私有方法是這個封裝性的一部分。通過定義私有方法,你可以將對象的一些內部實現細節封裝起來,只在類內部使用。這樣,外部代

面向對象編程 , oop , 面向對象設計模式

收藏 評論

註銷 - 類的實例方法和靜態方法的使用場合區別

面向對象編程(Object-Oriented Programming,簡稱OOP)是一種編程思想,它使用類(Class)和對象(Object)的概念來組織和管理代碼。在OOP中,類是一種模板,用來定義對象的屬性(成員變量)和行為(成員方法)。對象則是類的實例,它們包含了類中定義的屬性和方法,並且可以根據需要進行創建和操作。 在OOP中,類的方法分為兩種主要類型:實例方法和靜態方法。它們具有不同的特

面向對象編程 , oop , 面向對象設計模式

收藏 評論

註銷 - 什麼是面向對象編程領域的胖接口 - Fat Interface

在面向對象編程(Object-Oriented Programming,簡稱 OOP)領域,"胖接口",也稱為"Fat Interface",是一個被廣泛認識並且應當避免的設計反模式。這個術語指的是一個接口(或抽象類)包含了大量的方法,可能超出了單一職責的原則,導致接口變得臃腫、複雜和難以維護。在本文中,我將詳細解釋什麼是胖接口,為什麼它是一個問題,並通過實例來加深理解。 胖接口的定義和問題: "

面向對象編程 , oop , 面向對象設計模式 , 前端 , Javascript

收藏 評論

7mandy7 - Go中的面向對象1 我算是徹底玩明白了

大家好,我是Mandy。 前面一篇,分享了Go中的函數和方法之間有什麼區別、如何使用,今天來分享一篇關於面向對象的知識。 萬丈高樓平地起 在學習之前,我們來普及一下關於面向對象的基礎知識。 什麼是面向對象 面向對象(Object-Oriented)是一種計算機編程的方法和思想,它將程序中的數據(對象)和操作(方法)組織成一個個相互關聯和交互的對象。對象是現實世界中的事物或概念在計算機程序中的抽象表

oop , 面向對象設計模式 , go

收藏 評論

7mandy7 - Go中的面向對象2 我算是徹底玩明白了

大傢伙,我是Mandy。 上一篇,我們分享了在Go中是如何實現面向對象,文章中對面向對象的三大特性中的繼承、封裝,做了一個理論和實踐的總結,這一篇繼續分享關於另外一個特性,那就是多態。 認識多態 老規矩,在代碼實踐之前,先對基礎知識做一個普及。 1、面向對象中的多態(Polymorphism)是指一個對象可以具有多種不同的形態或表現方式。簡單來説,就是同一個類型的對象,在不同的上下文中表現出不同的

oop , 面向對象設計模式 , go

收藏 評論

cicadasmile - Java進階 | 從整體上觀察面向對象

一、面向對象 面向對象是Java編程中最核心的思想,基本特徵:繼承、封裝、多態。 1、特徵之封裝 將結構、數據、操作封裝在對象實體中,使用時可以不關注對象內部結構,只能訪問開放權限的功能入口,從而降低程序耦合程度,提供安全性和可持續維護性。 public class Concept01 { public static void main(String[] args) { S

封裝 , 多態 , 繼承 , 面向對象設計模式

收藏 評論

eacape - 責任鏈模式

通過構建一條流水線,將一個請求按照順序進行多次處理 下面使用一個登錄的例子來實現責任鏈模式 請求體類 public class UserInfo { private String username; private String password; private String role; public String getUsername() {

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

eacape - 享元模式

利用共享的方式來實現對象複用,這樣可以大幅度減少對象創建的數量、避免了創建大量相似對象的開銷,從而提高了資源的利用率。 在之前的單例模式中,曾經寫過一個“多例模式”的demo,一個類可以有固定個數的對象實例,每次需要使用這個類的實例的時候就從存有對象實例的集合中取一個使用。 public class MultiSingleton { private static MapInteger,Mu

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

註銷 - 什麼是面向對象設計領域的 Covariance 概念

在面向對象編程領域,Covariance是一個重要的概念,它涉及到繼承關係中的類型兼容性。具體來説,Covariance描述了在一個繼承體系中,子類型(派生類)的方法返回類型能否被視為父類型(基類)方法返回類型的子類型。 理解Covariance 要理解Covariance,首先需要明白子類型和父類型的關係。在面向對象編程中,通常會有一個基類(父類)和一個或多個派生類(子類)。子類繼承了父類的特性

面向對象設計模式

收藏 評論

eacape - 備忘錄模式

根據對象的內部狀態變化生成相應快照,以便以後恢復。 下面舉一個使用筆記軟件的歷史版本控制的例子來實現備忘錄模式。 原始類 public class Note { private String title; private String content; private Long createTime; private Long updateTime; pri

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

eacape - 模板方法模式

定義一個算法骨架(模板),將算法中的某一些步驟對子類開放修改,以此來區別子類。 比如説在部隊中可能在一起的有炮兵、汽車兵、步兵等,他們每天都要訓練,訓練內容射擊、跑步是每個兵種每天都要練的,但是還有其它訓練是每個兵種自己獨有的訓練,那麼他們一條的訓練內容可能如下。 08:00 跑步 10:00 專業訓練A 14:00 專業訓練B 16:00 射擊訓練 以上就是部隊統一制定的訓練框架,那麼炮兵的訓

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

eacape - 裝飾器模式

允許動態的向一個現有對象增加新功能,同時又不改變它的結構,相當於對現有對象的一個包裝,因此裝飾器模式也被稱作包裝模式。 裝飾器模式中一般存在以下四中角色 抽象組件:具體組件和抽象裝飾器共同的父類,最基礎的組件 具體組件:實現抽象構建中聲明的方法,裝飾器可以給它增加額外的職責 抽象裝飾器:繼承抽象組件並且可以通過構造方法引入具體組件,它的作用主要是組合具體組件 具體裝飾器:繼承抽象裝飾器

設計模式 , 設計原則 , JAVA , 面向對象設計模式 , 後端

收藏 評論

eacape - 組合模式

將對象組合成樹狀結構以表示整個部分的層次結構,組合模式可以讓用户統一對待單個對象和對象組合。 組合模式一般可以分三個角色 抽象組件:定義需要實現的統一操作 組合節點:一個可以包含多個對象的複合對象,意味着它下面可能還會有其它組合節點和葉子節點 葉子節點:下面不會有其它節點(與組合幾點唯一的差距就是沒有子節點) 組合模式最常用的就是用來表示一些樹形結構的對象關係,就比如説部門或者員工之間

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

湯太鹹 - 面向對象設計原則

開閉原則(Open Closed Principle,OCP):當應用的需求改變時,在不修改軟件實體的源代碼或者二進制代碼的前提下,可以擴展模塊的功能,使其滿足新的需求。 里氏替換原則(Liskov Substitution Principle,LSP):子類可以擴展父類的功能,但不能改變父類原有的功能。也就是説:子類繼承父類時,除添加新的方法完成新增功能外,儘量不要重寫父類的方法。

JAVA , 面向對象設計模式

收藏 評論

註銷 - 什麼是軟件開發中的 association 概念

在軟件開發領域,"association" 是指一種關係型結構,用於描述不同類之間的連接或關聯。這種關聯可以是單向的,也可以是雙向的,允許對象之間進行信息共享和相互影響。在面向對象編程 (OOP) 中,association 是實現類之間關係的重要機制,它有助於構建靈活、可擴展的軟件系統。 首先,讓我們深入瞭解一下軟件開發中的 "association",然後通過具體的例子來展示其實際應用。 Un

面向對象設計模式

收藏 評論

註銷 - 描述對象關聯關係的 aggregation,composition 和 association 有何區別

在軟件開發領域,"aggregation"、"composition"和"association"是用於描述類與類之間關係的三個重要概念。它們都涉及到不同程度的耦合和對象之間的關聯性,但具體的表達方式和用途有所不同。 1. Aggregation(聚合): Aggregation 表示一種弱關聯,它是一種“整體-部分”的關係,其中一個類(整體)包含了另一個類(部分),但它們之間的關係並不是強

面向對象設計模式

收藏 評論

eacape - 訪問者模式

在類的內部結構不變的情況下,不同的訪問者訪問這個對象,都會呈現出不同的效果。 訪問者模式有以下角色 元素類:是一個抽象類或者接口,裏面會定義一個接收(accept)訪問者的抽象方法,使得每一個元素能被訪問者訪問。 具體元素:繼承或實現元素類,實現接收方法。 訪問者:一般是一個抽象類,裏面涵括了可以訪問每個具體元素的方法,使得訪問者可以訪問每個具體元素(一般有幾個具體元素就會有幾個這個樣的方

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

eacape - 策略模式

策略是對算法的封裝,將不同的算法封裝到具有相同接口的獨立的類中,使算法本身和客户端分離開來,並且算法之間可以相互替換。 在策略模式中主要有以下幾種角色 上下文信息類(Context):用於存放和執行需要使用的具體策略類以及客户端調用的邏輯。 抽象策略類(Strategy):定義策略的共有方法。 具體策略類(ConcreteStrategy 等):實現抽象策略類定義的共有方法。 下面使用

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

註銷 - 什麼是面向對象領域軟件設計的 Contravariance 概念

Contravariance 這個詞在計算機科學中是一個重要的概念,特別是在類型系統和麪向對象編程中。它描述了一種類型關係,用於指導類型系統中的類型轉換和參數傳遞。為了更好地理解 Contravariance,我們需要先了解一下它的背景和相關的概念。 類型系統和多態 在面向對象編程中,類型系統是一個核心概念。類型系統有助於確保程序的安全性和正確性,通過規定變量、參數和函數的類型來約束程序的行為。其

面向對象設計模式

收藏 評論

eacape - 命令模式

命令模式就是將一組操作得調用封裝在一個對象裏面,這個對象稱作命令對象。 例如我們可以有一個專門用於開啓、關閉電器的命令,通過調用這命令就可以開關電器。 system start 冰箱 system close 冰箱 system start 空調 system close 空調 那麼我們可以寫一個關於電器的命令類,在創建對象的時候可以與具體電器的組合實現對具體電器的控制。 也就是我們為您可以將

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

eacape - 適配器模式

目錄 類適配器 對象適配器 兩種適配器的選擇 使用場景 類適配器 下面我們使用Mac電腦和U盤適配的一個簡單實例來了解類適配器的實現方式。 首先創建一個Mac的接口有讀寫的數據的功能 public interface MacInterface { void write(String msg); String read(); } 然後有一個u盤的實例 public cl

設計 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

eacape - 門面模式

為系統中的一組接口提供統一的接口,本意就是使用一個接口統一多個接口的功能。 門面模式可以代理多個接口,代理模式一般只代理一個接口。 比如説支付寶中完成一筆交易需要調用下單接口、入賬接口、通知接口等接口,那麼就可以是使用一個門面類對這些接口進行代理,將這些接口組合成一個接口,在餓了麼、淘寶、盒馬下單時只需要關注這一個門面類就行。

設計模式 , 設計原則 , JAVA , 面向對象設計模式 , 後端

收藏 評論

eacape - 中介者模式

中介者維護一組用户的交互,用户之間通過中介者進行交互,而不是直接交互。 中介者模式種一般有以下角色 抽象中介者:定義中介者需要的執行方法。 具體中介者:實現用户交互的具體邏輯。 用户類:引入中介者,向中介者輸出需要交互的內容。 下面通過一個婚介中心的實例來實現中介者模式 抽象中介者 - 婚介中心 public interface DatingAgency { /**

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論