發表文章

目前顯示的是 6月, 2019的文章

Design Pattern_Skill_4_簡單工廠模式(Simple Factory Pattern)

圖片
在軟體系統設計當中 創建型模式:主要是針對處理物件創建相關情況以某種方式控制物件實體化的設計模式 試圖就實際情況來切換較合適方法進行創建物件 主要核心思想是 將系統使用到的具體Class封裝起來 隱藏具體Class Object的建立與結合 創建型模式: (1)物件創建型模式:將物件實體化過程部分移至另一個物件中 (2)類別創建型模式:將其物件實體化過程移置子類中 在設計過程中時常會提到要對抽象(介面或抽象類)進行程式編碼設計 而不是對具體(實際物件)進行程式編碼設計 舉例要做一個比薩 就建立一個Pizza Class 做一個麵包則建立一個 Bread Class 一直透過new來實體化物件 這是典型的一個針對具體的設計 隨著時間流逝系統程式碼量倍增情況也影響到後期維護的複雜及工作量 不管後續要做捨麼都要創建新類別實在很麻煩 此時我們想到一種方法 有沒有可能我們設計一種Class是專門負責創建物件的 就好像一座工廠要做pizza或麵包 我們只要去調用該Factory class某一個方法透過傳指定參數來實作並回傳特定物件 此模式就是所謂的「簡單工廠設計模式」 ============================================================== 一家剛起步不久的Pizza店中的程式人員 負責幫忙開發pizza的系統 首先它知道pizza有如下工序 備料(準備起司絲、肉片)、 製作(稈麵團、加入蠔油)、 烘烤(統一30分鐘)、 完成(用紙箱裝盒外帶) 之後還有下訂單等業務 一開始推出口味有起司火腿、德國香腸、原味火腿口味的 所以他就直接寫了負責Pizza專屬工序的Class 對應三種不同口味的Class 還有負責訂單的Class 負責Pizza專屬工序的Class package OrignalApp ; /** * * @author chous */ public class Pizza { public void prepare (){ System . out . println ( "備料:準備起司絲、肉片" ); } public void make (){

Qt教材筆記_part01_基礎控制項_Buttons_slot信號槽範例(拖動、打程式添加)

圖片
Qt專案新建方式 第一種Qt Widget QPushButton使用(搭配QMessageBox) drag一個Push Button 可用變更文字來更改顯示文字為Test或其他內容 針對其右鍵則可添加信號槽進行event註冊 ui->setupUi(this)是由.ui文件生成的類的構造函數,這個函數的作用是對界面進行初始化,它按照我們在Qt設計器裡設計的樣子把窗體畫出來,把我們在Qt設計器裡面定義的信號和槽建立起來。 這邊要注意一定要放在最上面不可以把ui->setupUi(this)這行代碼寫在了最後底部。 不然會出現提示內存洩漏問題。 Qt在ui->setupUi(this)中對控制項進行內存分配 只有分配了內存,才能使用諸多控制項,所以說一定要把ui->setupUi(this)這行代碼放在函數一開始的位置。 Ctrl+A 再 Ctrl+i可自動format好程式碼喔!! 再使用QDebug時候記得引入相應header喔 另外內建的Qt header可用雙引或是尖括號(推薦) 透過按鈕來更新Label 完整範例程式碼 mainwindow.h(QPushButton+QLabel+QMessageBox) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow ; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: void on_pushButton_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H mainwin