原创 Java與設計模式(十)創建型--工廠方法模式

簡單工廠模式雖然簡單,但存在一個很嚴重的問題。當系統中需要引入新產品時,由於靜態工廠方法通過所傳入參數的不同來創建不同的產品,這必定要修改工廠類的源代碼,將違背“開閉原則”,如何實現增加新產品而不影響已有代碼? 一、需求 比如開發一個

原创 Java與設計模式(一)設計模式概述

一設計模式的由來 設計模式從何而來 軟件工程中的設計模式 二設計模式是什麼what 三爲什麼用設計模式why 四怎樣學習設計模式how 一、設計模式的由來 設計模式從何而來 在介紹設計模式的起源之前,我們先要了解一下

原创 Java與設計模式(三)設計原則--單一職責原則

一定義 二單一職責優點 一、定義 單一職責原則是最簡單的面向對象設計原則,它用於控制類的粒度大小。單一職責原則定義如下: 單一職責原則(Single Responsibility Principle, SRP):一個類

原创 Java與設計模式(四)設計原則--里氏代換原則

一定義 一、定義 里氏代換原則由2008年圖靈獎得主、美國第一位計算機科學女博士Barbara Liskov教授和卡內基·梅隆大學Jeannette Wing教授於1994年提出。其嚴格表述如下:如果對每一個類型爲S的對

原创 Java與設計模式(九)創建型--簡單工廠模式

一、需求 比如我想開發一套圖表庫,該圖表庫可以爲應用系統提供各種不同外觀的圖表,例如柱狀圖、餅狀圖、折線圖等,那我們可以這樣寫。代碼如下: public class Chart { private String type;

原创 Java與設計模式(六)設計原則--接口隔離原則

一、定義 接口隔離原則定義如下: 接口隔離原則(Interface Segregation Principle, ISP):使用多個專門的接口,而不使用單一的總接口,即客戶端不應該依賴那些它不需要的接口。 根據接口隔離原則,當

原创 Java與設計模式(八)設計原則--開閉原則

一、定義 開閉原則是面向對象的可複用設計的第一塊基石,它是最重要的面向對象設計原則。開閉原則由Bertrand Meyer於1988年提出,其定義如下: 開閉原則(Open-Closed Principle, OCP):一個軟件實體應

原创 Java與設計模式(七)迪米特法則(最少知道原則)

一、定義 迪米特法則來自於1987年美國東北大學(Northeastern University)一個名爲“Demeter”的研究項目。迪米特法則又稱爲最少知識原則(LeastKnowledge Principle, LKP),其定義

原创 Java與設計模式(二)類之間的關係

概述 一依賴關係Dependence 二關聯關係Association 三聚合Aggregation 四組合Composition 五繼承Generalization 六實現Implementation 七總結 概述

原创 關於HTTP協議,一篇就夠了

HTTP簡介 HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。 HTTP是一個基於TCP

原创 Linux更新內核

升級 CentOS 內核參考資料 2 通過 /proc 虛擬文件系統讀取或配置內核 Linux 內核官網 CentOS 官網 1. 關於 Linux 內核 Linux 內核分兩種:官方內核(通常是內核開發人員用)和各大 Lin

原创 Linux-- aliyun docker 加速

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-‘EOF’ { “registry-mirrors”: [“https://ixbgv285.mirror.a

原创 Linux安裝

主要是Linux配置網絡,安裝詳情查看其它博客 Linux 中安裝Docker,使用Docker安裝Tomcat,Mysql,Redis,RabbitMq Linux安裝MySql8.0 Linux安裝最新版本git

原创 Java 內存模型(一)——基礎

併發編程模型的分類 在併發編程中,我們需要處理兩個關鍵問題:線程之間如何通信及線程之間如何同步(這裏的線程是指併發執行的活動實體)。通信是指線程之間以何種機制來交換信息。在命令式編程中,線程之間的通信機制有兩種:共享內存和消息傳遞。

原创 Java 內存模型(五)——鎖

鎖的釋放 - 獲取建立的 happens before 關係 鎖是 java 併發編程中最重要的同步機制。鎖除了讓臨界區互斥執行外,還可以讓釋放鎖的線程向獲取同一個鎖的線程發送消息。 下面是鎖釋放 - 獲取的示例代碼: class M