【知識積累】一、設計模式
一、分類
1、建立型(5)
工廠方法模式、抽象工廠模式、建造者模式、原型模式、單例模式。
2、結構型(7)
介面卡模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
3、行為型模式(11)
策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、直譯器模式。
4、併發型模式和執行緒池模式。
二、原則
1、開閉原則(抽象化)
對擴充套件開放,對修改關閉。
2、里氏代換原則(抽象化的具體實現)
任何基類可以出現的地方,子類一定可以出現。子類可以覆蓋基類,在基類的基礎上增加新的行為。
3、依賴倒轉原則
依賴抽象,而不依賴具體。
4、介面隔離原則
降低類耦合。
5、迪米特原則(又叫:最少知道原則)
一個實體應當儘量少的與其他實體之間發生相互作用,使得系統功能模組相對獨立。
6、合成複用原則
儘量使用合成、聚合的方式,而不是使用繼承。
相關推薦
【知識積累】一、設計模式(建立型)
定義公共介面和實現類: 一、工廠方法模式(Factory Method) 1、普通工廠模式 2、多工廠方法模式 3、靜態工廠方法模式 二、抽象工廠模式(Abstract Factory) 三、建造者模式(Builder)
【知識積累】一、設計模式
一、分類 1、建立型(5) 工廠方法模式、抽象工廠模式、建造者模式、原型模式、單例模式。 2、結構型(7) 介面卡模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。 3、行為型模式(11) 策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄
【知識積累】(一)、瞭解Regex(正則表示式)
一、正則表示式簡介 一種可以用於模式匹配和替換的規範,由普通字元 + 特殊字元構成一個模板,用於對目標字串進行匹配、查詢、替換、判斷。 原始碼:JDK1.4中的java.util.regex下的Pattern和Matcher類。 二、常用語法 1、字元取值範圍 [abc]:表示可能是a
【知識積累】(二)、深入Regex(正則表示式)
\:將下一個字元標記符、或一個向後引用、或一個八進位制轉義符。例如,“\\n”匹配\n。“\n”匹配換行符。序列“\\”匹配“\”而“\(”則匹配“(”。即相當於多種程式語言中都有的“轉義字元”的概念。 ^:匹配輸入字串的開始位置。如果設定了RegExp物件的Multiline屬性,^也匹配“\n
【知識積累】(四)、訊息中介軟體 - 升級版
一、訊息釋出 二、訊息訂閱 三、總結 1、ActiveMQ的特性(1)、多種語言和協議客戶端。語言:Java,C,C++,C#,Ruby,Perl,Python,PHP。應用協議:OpenWire,Stomp REST,WS Noti
【知識積累】Linux Confluence檔案內容不能預覽
1、檢視作業系統是否有中文字型 fc-list 2、安裝字型庫 yum -y install fontconfig 2.1、安裝成功 2.2、檢視相關目錄 3、新增中文字型 3.1、在fonts目錄下新建windowsfonts目錄
【知識積累】共享鎖和排他鎖
共享鎖,又稱為讀鎖,獲得共享鎖之後,可以檢視但無法修改和刪除資料。 排他鎖,又稱為寫鎖、獨佔鎖。獲准排他鎖後,既能讀資料,又能修改資料。 為什麼要加鎖 很多人都知道,鎖,是用來解決併發問題的,那麼什麼是併發問題呢?併發情況下,不加鎖會有什麼問題呢? 拿日常生活中的洗手間舉例子,每個洗手間都會
【知識積累】Lombok
安裝:https://blog.csdn.net/dorothy1224/article/details/79280591/ cmd 進入jar包目錄 執行java -jar lombok.jar 進入安裝頁面
【知識積累】Alibaba druid配置
1、官方網站 https://github.com/alibaba/druid/wiki/%E9%A6%96%E9%A1%B5 2、下載 http://repo1.maven.org/maven2/com/alibaba/druid/ <dependency>
【知識積累】Quartz的使用
一、cron表示式 格式:【秒】 【分】 【時】 【日】 【月】 【周】 【年】 說明 必填 範圍 萬用字元 秒 Y 0~59 , - * / 分 Y 0~
一、設計模式
一、設計模式分類 總體來說設計模式分為三大類: 建立型模式: 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式 結構型模式: 介面卡模式
一、設計模式簡介
設計模式型別 設計模式可以分為三大類:建立型模式、結構型模式、行為型模式;另一類,J2EE模式。 建立型模式 這類模式通常不使用new建立物件,以一種隱匿的方式構造物件,該模式可以分為: 工廠模
【webpack整理】一、安裝、配置、按需載入
如果你: 是前端熱愛者 :) 有JavaScript/nodejs基礎 會使用一些常用命令列,mkdir,cd,etc. 會使用npm 想對webpack有更深的認識,或許此時你恰好遇到關於webpack的問題 那麼,請繼續閱讀: 什麼是webpack,為什麼使用
【知識積累】C#中結構體和類的區別
【類】 類是對現實生活中一類具有共同特徵的事物的抽象。類的實質是一種資料型別,類似於int、char等基本型別,不同的是它是一種複雜的資料型別。因為它的本質是型別,而不是資料,所以不存
【重寫 CryptoJS】一、ECMAScript 類與繼承
原始碼地址: entronad/crypto-es 無論是前端還是後端,資訊的加解密、摘要校驗是常常碰到的需求,開發中一旦涉及到敏感資料,什麼 MD5 、 Base64 、 AES 演算法基本上都是要來上一套的。 在 JavaScript 的各種加密演算法工具庫中,
【知識積累】Java中的UUID類(生成唯一ID)
1.UUID 簡介 UUID含義是通用唯一識別碼 (Universally Unique Identifier),這是一個軟體建構的標準,也是被開源軟體基金會 (Open Software Foundation, OSF) 的組織應用在分散式計算環
【軟體工程】一、基本概念
一、概論 1.定義 軟體的定義: 電腦科學百科全書:計算機系統中的程式和文件; 軟體的特點: 系統維護佔大多數時間。 軟體的種類: 系統軟體:作業系統,編譯程式 支撐軟體:資料庫 應用軟體 2.軟體工程的起源 1947年馮諾依曼提出“程式設計”的概念,開啟了軟
【java基礎】單例設計模式:保證一個類在記憶體中的物件唯一性
摘要:單例設計模式解決的問題就是可以保證一個類在記憶體中的物件唯一性,必須對於多個程式使用同一個配置資訊物件時,就需要保證物件的唯一性。 單例設計模式有兩個表現形式:餓漢式和懶漢式。餓漢式開發時常用,
【知識積累】使用js-xlsx,JS實現匯入excel表格
1.匯入功能的實現1.1.引入相關的js外掛<!--js-xlsx --> <!-- <script src="http://oss.sheetjs.com/js-xlsx
【手把手TensorFlow】一、從開始使用TensorFlow到弄清楚“搭建神經網路套路”
一、基本概念 基於TensorFlow的NN(神經網路): 1.張量:即多維陣列,表示資料 2.計算圖:搭建神經網路,不運算 3.會話:執行計算圖 注:用階表示張量的維度,t=[[]]表示2階,t=[[[]]]表示3階。數張量右邊括號數。 0階張量表示數 1階張量表示陣列