原创 抽象工廠(Abstract Factory) -- 對象創建型模式

意圖 提供一個創建一系列相關的或相互依賴對象的接口,而無需指定它們具體的類。 適用性 一個系統要獨立於它的產品的創建、組合和表示時; 一個系統要由多個產品系列中的一個來配置; 當要強調一個系列相關的產品對象的設計以便進行聯合使用

原创 C++日誌系統log4cxx

安裝 yum安裝 直接使用yum安裝log4cxx.x86_64(庫文件) log4cxx-devel.x86_64(頭文件) yum install log4cxx.x86_64 # 庫文件 yum install log

原创 原型模式(Prototype) -- 對象創建型模式

意圖 用原型實例指定創建對象的種類,並通過拷貝這些原型創建新的對象。 適用性 當 一個系統應該獨立於它產品的創建、構成和表示時: * 當要實例化的類是在運行時指定的。 * 爲了避免創建一個和產品類層次平行的工廠類層次。 * 當一個類

原创 非root安裝pip和第三方包

很多時候我們在Linux服務器上沒有root權限,關鍵是還沒有pip,不能安裝必要的第三包。這時候就要用非root的方式安裝pip和第三方包。 安裝pip wget https://bootstrap.pypa.io/get-pip.py

原创 Bash Shell腳本進階

引言 shell腳本中會有一些命令行中不常用的命令,但是在腳本中卻非常有用的命令。還有在腳本中有一些常用的功能,有的是自己項目中見到的,有的是網上搜到的,慢慢積累。 Misc echo -n "please enter a count:"

原创 Bash shell腳本基礎總結

開始 bash是目前應用最多的shell腳本,由命令和註釋組成,註釋跟在井號#後面。 腳本第一行指出由哪種程序來解析腳本,這一行稱爲shbang行,必須頂端第一行。如下有兩種方式來指定程序位置,第一種直接指定bash程序位置,第二種通過e

原创 C++11多線程編程 -- thread

std::thread類 #include <thread> namespace std { class thread { public: // construct/copy/destroy:

原创 工廠方法(Factory Method) -- 對象創建型模式

意圖 定義一個用於創建對象的接口,讓子類決定實例化哪一個類。Factory Method使一個類的實例化延遲到了其子類。 適用性 當一個類不知道它所必須創建的對象的類的時候。 當一個類希望由它的子類來指定它所創建的對象的時候。 當類創建

原创 Git命令總結

現在用的最多的代碼版本控制軟件應該就是Git了,雖然開發的時候每天都需要用,但是如果中間斷了一段時間,很容易忘記。以下爲常用的幾個命令組成的一張圖: 下面是Git中的幾個區域的專有名詞: - Workspace:工作區,我們增刪

原创 單例模式(Singleton) -- 對象創建型模式

意圖 保證一個類只有一個實例,並提供一個訪問它的全局訪問點。 適用性 當類只能有一個實例並且客戶可以從一個從所周知的訪問點訪問它。 當這個唯一實例應該通過子類來實現可擴展性,並且用戶不需要修改代碼就可以使用一個擴展的實例。 結構

原创 虛擬機上安裝samba和nfs

前記 由於公司編譯服務器上沒有安裝samba,所以需要搭建一個Linux虛擬機用於跳板,對本地提供samba服務,對編譯服務器提供nfs服務,實現share文件夾內的內容本地與編譯服務器共享,雖然挺簡單的,但是一些細節還是容易出錯,也爲了

原创 Linux終端複用器 - Tmux

引言 開發Linux程序時,經常需要通過終端連接到Linux服務器,然後在上面進行一些操作,比如設置一些環境變量、編譯、測試等等,而有些過程會比較久,一旦中間出現一些網絡不穩定斷開連接就經常需要重新來過。 而tmux就可以很好的解決這個

原创 常見排序算法總結

簡介 這裏介紹的都是內部排序,即在所有數據都在內存中的,還有這些排序都是通過比較來獲得次序信息,因此這些排序算法都稱爲比較排序。 最簡單的有冒泡排序、簡單選擇排序、直接插入排序,希爾排序是對插入排序的優化,堆排序是在堆這種數據結構上的選