軟設之面向對象開發流程

面向對象開發流程分為

1.面向對象分析

2.面向對象設計

3.面向對象程序設計

4.面向對象測試

其中

面向對象分析包括

認定對象

組織對象

對象間的互相租用

基于對象的操作

識別類及對象:

識別類及對象

定義屬性

定義服務

識別關系

識別包

面向對象程序設計:

程序設計范型

選擇一種OOPL

面向對象測試:

算法層

類層

模板層

系統層

面向對象設計:

? ? ? ? 面向對象設計7大原則

1.單一職責原則:設計目的單一的類

2.開放-封閉原則:對擴展開放,對修改封閉

3.李氏替換原則:子類可以替換父類

4.依賴倒置原則:要依賴于抽象,而不是具體實現;針對接口編程,不要針對實現編程

5.接口隔離原則:使用多個專門的接口比使用單一的總接口更好

6.組合重用原則:要盡量使用組合,而不是繼承關系達到重用目的

7.迪米特原則:一個對象應當對其他對象有盡可能少的了解

面向對象設計其他原則

重用發布等價原則:重用的粒度就是發布的粒度

共同封閉原則:包中所有的類對于同一性質的變化應該是共同封閉的。一個變化若對一個包產生影響,則將對該包里的所有類產生影響,而對于其他的包不造成任何影響

共同重用原則:一個包里的所有類應該是共同重用的。如果重用了包里一個類,那么就要重用包中的所有類

無依賴原則:在包的依賴關系圖中不允許存在環,即包之間的結構必須是一個直接的無環結構。

穩定依賴原則:朝著穩定的的方向進行依賴

穩定抽象原則:包的抽象程度應該和其穩定程度一致。

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

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

相關文章

C++ 智能指針內存泄漏問題

shared_ptr相互嵌套導致循環引用 代碼示例 #include <iostream> #include <memory> using namespace std;class B;class A { public:std::shared_ptr<B> b_ptr;~A() { std::cout << "A destroyed\n"; } };class B { public:std::shared_pt…

數據結構 1.1 數據結構的基本概念

本章總覽&#xff1a; 一.什么是數據 1.數據 數據是信息的載體&#xff0c;是描述客觀事物屬性的數、字符及所有能輸入到計算機中并被計算機程 序識別和處理的符號的集合。數據是計算機程序加工的原料。 早期計算機只能處理純數值的問題&#xff0c;如世界第一題計算機ENI…

轉讓北京文化傳媒公司帶營業性演出經紀許可證

影視文化傳播倡導將健康的影視文化有效傳播給觀眾&#xff0c;從而構建觀眾與電影制作者的良 性溝通與互動&#xff0c;是溝通電影制作者與電影受眾的重要橋梁。影視文化泛指以電影&#xff0c;電視方式所進行的全部文化創造&#xff0c;即體現為電影&#xff0c;電視全部的存在…

Java-List集合堆內存溢出

Java-List集合堆內存溢出 情況一情況二對照分析對照規定堆內存 情況一 往List<Object>的集合中不斷插入元素&#xff0c;集合底層的數組會不斷擴容&#xff0c;從0 -> 10 -> 10 10>>1…。最終出現堆內存溢出&#xff0c;是在擴容數組大小的時候。這里的過程…

【應屆應知應會】SQL常用知識點50道

SueWakeup 個人主頁&#xff1a;SueWakeup 系列專欄&#xff1a;借他一雙眼&#xff0c;愿這盛世如先生所愿 個性簽名&#xff1a;人生乏味啊&#xff0c;我欲令之光怪陸離 本文封面由 凌七七~? 友情提供 目錄 數據庫的概念 (什么是數據庫) RDBMS NOSQL 數據庫的分類 …

Qt涂鴉板

Qt版本&#xff1a;Qt6 具體代碼&#xff1a; 頭文件 dialog.h #ifndef DIALOG_H #define DIALOG_H#include <QDialog>QT_BEGIN_NAMESPACE namespace Ui { class Dialog; } QT_END_NAMESPACEclass Dialog : public QDialog {Q_OBJECTpublic:Dialog(QWidget *parent n…

0145__contain_of的原理與實現

contain_of的原理與實現_contain of-CSDN博客

從零開始!Jupyter Notebook的安裝教程

引言 Jupyter Notebook作為一種交互式的開發環境&#xff0c;已經成為數據科學和機器學習領域中不可或缺的工具之一。它能夠將代碼、文本、圖像和數據結合在一個靈活的文檔中&#xff0c;使得數據分析和可視化變得更加直觀和高效。 本文將詳細介紹Jupyter Notebook的安裝過程…

深入理解 Git `git add -p` 命令中的交互選項

個人名片 &#x1f393;作者簡介&#xff1a;java領域優質創作者 &#x1f310;個人主頁&#xff1a;碼農阿豪 &#x1f4de;工作室&#xff1a;新空間代碼工作室&#xff08;提供各種軟件服務&#xff09; &#x1f48c;個人郵箱&#xff1a;[2435024119qq.com] &#x1f4f1…

500mA、低壓差、低噪聲、超快、無需旁路電容的CMOS LDO穩壓器RT9013

一般描述 RT9013 SOT23-5封裝的外觀和絲印 RT9013 是一款高性能的 500mA LDO 穩壓器&#xff0c;具有極高的 PSRR 和超低壓差。非常適合具有苛刻性能和空間要求的便攜式射頻和無線應用。 RT9013的靜態電流低至25μA&#xff0c;進一步延長了電池的使用壽命。RT9013 也適用于低…

mysql在部署時的問題

1.遠程連接是否開放問題 DataGrip遠程連接Ubuntu Linux MySQL服務器報錯DBMS: MySQL (no ver.)-CSDN博客 【MySQL】DataGrip遠程連接MySQL_datagrip連接遠程mysql數據庫-CSDN博客 一定要把對應端口規則打開 2.遠程連接不適用3306作為默認運行端口 打開mysql的配置文件&…

音樂發行平臺無加密開源源碼

適用于唱片公司&#xff0c;用于接收物料&#xff0c;下載物料功能&#xff1a;個人或機構認證&#xff0c;上傳專輯和歌曲&#xff0c;版稅結算環境要求php7.4Nginx 1、導入數據庫 2、/inc/conn.php里填寫數據庫密碼等后臺路徑/admin&#xff08;可自行修改任意入口名稱&…

AI在軟件開發中的角色:助手還是取代者?

目錄 前言 一、AI工具現狀&#xff1a;高效助手的崛起 二、AI對開發者的影響&#xff1a;新技能與競爭力的重塑 三、AI開發的未來&#xff1a;共生而非取代 寫在最后 前言 隨著科技的飛速發展&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;在軟件開發領域的應用日…

【JS】過濾數組中空值——arr.filter(Boolean)

前言&#xff1a;過濾數組中的空值&#xff0c;包括 &#xff08;undefined、null、“”、0、false、NaN&#xff09; Boolean函數可以將一個值轉換為布爾值&#xff0c;空值會被轉換為false&#xff0c;非空值會被轉換為true 方法&#xff1a; const arr [1, 2, ""…

【SQL常用日期函數(一)】

SQL 常用日期函數-基于impala 引擎 當前日期&#xff08;YYYY-MM-DD&#xff09; SELECT CURRENT_DATE(); -- 2024-06-30昨天 SELECT CURRENT_DATE(); -- 2024-06-30 SELECT CAST( DAYS_ADD(TO_DATE( CURRENT_DATE() ), -1 ) AS VARCHAR(10) ); -- 2024-06-29 SELECT CAST( …

Linux-頁表如何對物理內存進行映射

1.1 頁框和頁幀 我們知道通過頁表可以將虛擬內存映射到對應的物理內存&#xff0c;而操作系統對于物理內存的管理并不是以字節為單位的&#xff0c;而是將物理內存分為許多大小為4KB的塊&#xff0c;稱為頁框或頁幀&#xff0c;這就是為什么我們在創建共享內存是建議將大小設定…

LTSPICE仿真電路:(十九)磁珠的一些簡單仿真

1.作用 簡單來說就是用來濾波的&#xff0c;將高頻信號轉化為熱量濾除掉&#xff0c;低頻有用信號正常通過 2.參數 上圖幾個參數比較簡單&#xff0c;就是字面上的意思&#xff0c;更重要的就是頻率阻抗圖 不同曲線代表不同型號的磁珠&#xff0c;實際上除了額定電流外&#…

基于springboot+vue+uniapp的語言課學習系統小程序

開發語言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服務器&#xff1a;tomcat7數據庫&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;數據庫工具&#xff1a;Navicat11開發軟件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

藝活網DIY手工制作網站源碼 工藝制作教程平臺源碼,帶數據

帝國CMS仿《手藝活》DIY手工制作網源碼&#xff0c;仿手藝活自適應手機版模板。 帶數據庫和圖片資源&#xff0c;一共5個G大小&#xff0c;下載需耐心。 92開發 手藝活網DIY手工制作網站源碼 創意手工藝品制作教程平臺系統帝國h5自適應手機端 是一套展示各種 DIY 小物品精美又…

@react-google-maps/api實現谷歌地圖中添加多邊圍欄,并可編輯,編輯后可獲得圍欄各個點的經緯度

先上一張效果圖 看看是不是大家想要的效果&#xff5e; ?? 由于該功能微微復雜一點&#xff0c;為了讓大家精準了解 我精簡了一下地圖代碼 大家根據自己的需求將center值和paths&#xff0c;用setState做活就可以了 1.第一步要加入項目package.json中或者直接yarn install它…