《軟件設計師》復習筆記(14.1)——面向對象基本概念、分析設計測試

目錄

一、面向對象基本概念

對象(Object)

類(Class)

抽象(Abstraction)

封裝(Encapsulation)

繼承(Inheritance)

多態(Polymorphism)

接口(Interface)

消息(Message)

覆蓋(Override)

函數重載(Overload)

綁定(Binding)

真題示例:

二、面向對象分析與設計

1. 面向對象分析(OOA)

2. 面向對象設計(OOD)

3. 面向對象測試

測試層次

真題示例:


一、面向對象基本概念

  1. 對象(Object)

    • 由數據(屬性)操作(方法)構成的封裝體。
    • 組成:對象名、屬性、方法。
  2. 類(Class)

    • 現實世界實體的形式化描述,是對象的模板。
    • 類的分類
      • 實體類:表示真實實體(如人、物、學生)。
      • 接口類(邊界類):提供用戶與系統的交互方式(如窗口、菜單、二維碼、筆、計算機)。
      • 控制類:協調活動流(如業務邏輯控制、一個一個地排隊)。
  3. 抽象(Abstraction)

    • 抽取共同特征形成概念,強調主要特征,忽略次要特征。
  4. 封裝(Encapsulation)

    • 信息隱蔽技術,將數據和操作封裝為整體,僅通過接口訪問。
  5. 繼承(Inheritance)

    • 類之間的層次關系(父類與子類),支持單繼承多繼承
  6. 多態(Polymorphism)

    • 同一消息不同對象產生不同結果,分為:
      • 參數多態(不同參數類型)
      • 包含多態(父子類關系)
      • 過載多態(同名不同參)
      • 強制多態(類型轉換)
  7. 接口(Interface)

    • 定義操作規范(做什么),不定義具體實現(如何做)。
  8. 消息(Message)

    • 對象間交互的請求(如方法調用)。
  9. 覆蓋(Override)

    • 子類重寫父類同名同參的方法。
  10. 函數重載(Overload)

    • 同名函數,參數不同(與繼承無關)。
  11. 綁定(Binding)

    • 靜態綁定:編譯時確定(如普通函數調用)。
    • 動態綁定:運行時確定(如多態調用)。

真題示例:

?一個類中可以擁有多個名稱相同而參數表(參數類型或參數個數或參數類型順序)不同的方法,稱為( )。

A.方法標記 B.方法調用 C.方法重載 D.方法覆蓋

  • 方法重載(Overload):在同一個類中,多個方法同名但參數不同(類型、個數、順序不同)。
  • 方法覆蓋(Override):子類重寫父類同名同參的方法。
  • 方法標記:無此術語。
  • 方法調用:指執行某個方法,與定義無關。

在某銷售系統中,客戶采用掃描二維碼進行支付。若采用面向對象方法開發該銷售系統,則客戶類屬于()類,二維碼類屬于()類。

A. 接口 B. 實體 C. 控制 D. 狀態

A. 接口 B. 實體 C. 控制 D. 狀態

  • 客戶類:代表現實世界的“客戶”實體,屬于實體類
  • 二維碼類:提供支付交互方式(掃描二維碼),屬于接口類(也稱邊界類)。


二、面向對象分析與設計

1. 面向對象分析(OOA)

  • 目標:確定問題域,理解需求。

  • 活動

    • 認定對象
    • 組織對象
    • 描述對象交互
    • 確定對象操作
    • 定義對象內部信息
  • 組成

    • 頂層架構圖
    • 用例與用例圖
    • 領域概念模型

?面向對象需求建模:

2. 面向對象設計(OOD)

  • 目標:設計解決方案,生成源代碼。

  • 設計原則

    • 單一責任原則:一個類僅有一個變化原因。
    • 開放-封閉原則:可擴展,不可修改。
    • 里氏替換原則:子類可替換父類。
    • 依賴倒置原則:抽象不依賴細節,細節依賴抽象。
    • 接口分離原則:客戶不應依賴不用的方法。
  • 設計模型組成

    • 包圖(軟件體系結構)
    • 交互圖(用例實現)
    • 類圖(完整類結構)
    • 狀態圖(復雜對象行為)
    • 活動圖(流程化處理)

3. 面向對象測試

測試層次

  1. 算法層:測試類中的方法(單元測試)。
  2. 類層:測試類內屬性與方法的交互(模塊測試)。
  3. 模板層:測試類間協作(集成測試,關注消息傳遞)。
  4. 系統層:組裝子系統并測試(系統測試)。

真題示例:

面向對象的分析模型主要由頂層架構圖、用例與用例圖和( )構成:設計模型則包含以( )表示的軟件體系機構圖、以交互圖表示的用例實現圖、完整精確的類圖、描述復雜對象的( )和用以描述流程化處理過程的活動圖等。

A. 數據流模型 B. 領域概念模型 C. 功能分解圖 D. 功能需求模型

A. 模型視圖控制器 B. 組件圖 C. 包圖 D. 2層、3層或N層

A. 序列圖 B. 協作圖 C. 流程圖 D. 狀態圖

  1. 分析模型構成

    • 領域概念模型是分析階段的核心,用于描述系統中的關鍵實體及其關系,區別于數據流模型(A)和功能分解圖(C)。
  2. 設計模型表示

    • 包圖(C)通過模塊化組織代碼結構,比組件圖(B)更側重邏輯分層,而MVC(A)是具體架構模式。
  3. 復雜對象描述

    • 狀態圖(D)適合描述對象生命周期內的狀態轉換,序列圖(A)和協作圖(B)更側重交互流程。

在面向對象設計的原則中,( )原則是指抽象不應該依賴于細節,細節應該依賴于抽象,即應針對接口編程,而不是針對實現編程。

A. 開閉 B. 里氏替換 C. 最少知識 D. 依賴倒置

依賴倒置原則強調抽象不應依賴細節,細節應依賴抽象,通過接口編程降低耦合

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76245.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76245.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76245.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubuntu22.04 安裝有度即時通

1.官網下載deb的安裝包 官網地址:有度客戶端下載-有度 注意:這個網站的下載是有時間限制的,有時候無法下載 需要對應系統版本,否則無法使用 我之前使用了dpkg安裝了一個舊版本,卸載使用以下命名行: 使用…

ValueError: model.embed_tokens.weight doesn‘t have any device set

ValueError: model.embed_tokens.weight doesn’t have any device set model.embed_tokens.weight 通常在深度學習框架(如 PyTorch)中使用,一般是在處理自然語言處理(NLP)任務時,用于指代模型中詞嵌入層(Embedding layer)的權重參數。下面詳細解釋: 詞嵌入層的作用 …

如何提高單元測試的覆蓋率

一、定位未覆蓋的代碼 ?利用 IDEA 的覆蓋率工具?: 右鍵測試類 → ?Run with Coverage,或使用 AltShiftF10(Windows)打開運行菜單選擇覆蓋率。?查看高亮標記?: ?綠色?:已覆蓋代碼行。?紅色?&#x…

聚合直播-Simple Live-v1.7.7-全網直播平臺能在一個軟件上看完

聚合直播-Simple Live 鏈接:https://pan.xunlei.com/s/VOO7u3o4FNL_XA9VJ6l7KBNfA1?pwdyrau# 聚合直播-Simple Live-v1.7.7-全網直播平臺能在一個軟件上看完

三大等待和三大切換

三大等待 1、三大等待:等待的方式有三種:強制等待,隱性等待,顯性等待。 1、強制等待:time.sleep(2),秒 優點:使用簡單缺點:等待時間把握不準,容易造成時間浪費或者等待時…

使用Lombok @Builder 收參報錯提示沒有無參構造方法的原因與解決辦法

使用Lombok Builder 收參報錯提示沒有無參構造方法的原因與解決辦法 類上加了Builder之后接口接收前端傳來的參數報錯:(no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) 1.解決辦法…

SAP 查找JOB進程ID

如何查找后臺JOB的進程ID SM37勾選對于JOB

通過C# 將Excel表格轉換為圖片(JPG/ PNG)

Excel 表格可能會因為不同設備、不同軟件版本或字體缺失等問題,導致格式錯亂或數據顯示異常。轉換為圖片后,能確保數據的排版、格式和外觀始終保持一致,無論在何種設備或平臺上查看,都能呈現出固定的樣式,避免了因環境…

Langchain構建RAG對話應用

本文:關注 檢索器與上下文的子鏈、父鏈;即檢索器也需要上下文內容。 RAG是一種增強LLM知識的方法,通過引入額外的數據來實現。 實現思路:加載—》分割—》存儲—》檢索—》生成。 初始化 import os import bs4 from langchain.c…

關于模擬噪聲分析的11個誤區

目錄 1. 降低電路中的電阻值總是能改善噪聲性能 2. 所有噪聲源的噪聲頻譜密度可以相加,帶寬可以在最后計算時加以考慮 3. 手工計算時必須包括每一個噪聲源 4. 應挑選噪聲為ADC 1/10的ADC驅動器 5. 直流耦合電路中必須始終考慮1/f噪聲 6. 因為1/f噪聲隨著頻率降…

vue,uniapp解決h5跨域問題

如果有這樣的跨域問題,解決辦法: ? 第一步:在項目根目錄下創建 vue.config.js 和 package.json 同級目錄。 // vue.config.js module.exports {devServer: {proxy: {/api: {target: https://app.yycjkb.cn, // 你的后端接口地址changeOrig…

SQL通用語法和注釋,SQL語句分類(DDL,DML,DQL,DCL)及案例

目錄 SQL通用語法和注釋 SQL語句分類(DDL,DML,DQL,DCL,TPL,CCL) DDL(數據定義語言) 數據庫操作 查詢(SHOW、SELECT) 創建(CREAT…

Linux:線程概念與控制

??所屬專欄:Linux?? ??作者主頁:嶔某?? Linux:線程概念于控制 var code “d7e241ae-ed4d-475f-aa3d-8d78f873fdca” 概念 在一個程序里的一個執行路線就叫做線程thread。更準確一點:線程是“一個進程內部的控制序列” …

人臉識別聯合行為檢測的辦公管理新模式

基于人臉識別與行為檢測的辦公智能化解決方案 一、背景 在傳統辦公場景中,員工考勤管理、工位使用情況統計、安全監控等環節存在諸多痛點。例如,傳統考勤方式如指紋打卡、刷卡等存在代打卡現象,考勤數據不準確;對于員工是否在工…

ceph weight 和 reweight 的區別

ceph osd df ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS0 nvme 6.98630 0.95508 7.0 TiB 5.0 TiB 4.9 TiB 13 GiB 33 GiB 2.0 TiB 71.10 0.96 83 up1 nvme 6.98630

WInform當今技術特性分析

Windows Forms (WinForms) 技術特性分析 引言 Windows Forms (WinForms) 作為微軟最早推出的基于.NET的圖形用戶界面開發框架,已經存在了20多年。在如今充滿了各種現代UI框架的軟件開發生態系統中,WinForms仍然保持著其獨特的地位。本文將深入分析WinF…

Spark rdd算子解析與實踐

一、RDD基礎回顧 RDD(Resilient Distributed Dataset) 是Spark的核心抽象,代表一個不可變、分區的分布式數據集合。其核心特性包括: 容錯性:通過血緣(Lineage)記錄數據生成過程,支…

sqlite3的API以及命令行

sqlite是目前最流行的嵌入式數據庫。 所謂嵌入式,就是足夠簡單,可以嵌入到我們自己開發的應用程序之中。 在Linux系統中,sqlite的使用只需要使用它的API,連接它的動態連接庫,甚至都不用連接,sqlite的實現…

Allure測試報告按測試終端和測試類型智能分類查看

以下是實現Allure測試報告按測試終端和測試類型智能分類的完整方案: 一、測試框架分層設計 # 項目結構 project/ ├── api_tests/ # API測試 │ └── test_order.py ├── app_tests/ # 移動端測試 │ ├── android/ │ └── ios/ ├── pc_te…

Spine-Leaf 與 傳統三層架構:全面對比與解析

本文將詳細介紹Spine-Leaf架構,深入對比傳統三層架構(Core、Aggre、Access),并探討其與Full-mesh網絡和軟件定義網絡(SDN)的關聯。通過通俗易懂的示例和數據中心網絡分析,我將幫助您理解Spine-L…