[Day 00] 第 01 屆開發者寫作松寫作規劃


自我介紹

  • 電算中心工讀生
  • 曾於工研院擔任小軟工讀生
  • Wikidata台中地方學專題聚會主持人
  • 主要以Web前端開發為主
    大家好,目前是剛考上資工所的大四生,也有參加FLOSS社群,這次想利用七天的時間閱讀設計模式,正好有一本書叫做7天學會設計模式設計模式也可以這樣學,書中介紹了常見的設計模式,所以接下來這7天都會撰寫閱讀書摘,並且同時培養自己閱讀習慣。

書籍資訊

  • 作者: Yan(硯取歪)
  • 出版社:博碩
  • 出版日期:2017/04/25
  • ISBN: 978-986-434-204-4

為何學習設計模式

當project越寫越龐大之後,maintain的難度就越來越高,如果有Design Patterns,不僅能夠加速維護程式碼之速度,也能夠方便於和其他開發人員溝通。

7天目標

了解GoF的23個設計模式之概念與基本用法

物件導向程式設計(Object-Oriented Programming)

書本最前面寫到在閱讀之前要知道甚麼是OOP,以下我們就快速複習一下OOP吧!

  • 類與物件

    • 類(Class):

      定義了一件事物的抽象特點。類的定義包含了資料的形式以及對資料的操作。
      from Wikipedia

    • 物件(Object): 類的實例

  • 封裝:
    • Public
    • Private
    • Protected
  • 繼承:
#define PI 3.1415926
#include <iostream> 
#include <cmath>
using namespace std;

class Const
{
protected:
    int radius;
    int height;
public:
    void setRadius(int r)
    {
        radius = r;
    }   
    void setHeight(int h)
    {
        height = h;
    }
};

//Cylinder繼承Const類別,並獲得父類別之屬性
class Cylinder : public Const
{
public:
    double getVolume()
    {
        return (pow(radius,2) * PI * height);
    }
};

int main()
{
    Cylinder Instance;

    Instance.setRadius(10);
    Instance.setHeight(25);

    cout << "Volume = " << Instance.getVolume() << endl;

    return 0;
}
  • 多型
  • 多載:
#include <iostream>
using namespace std;

int add(int x, int y);
int add(int x, int y, int z);

int main()
{
    cout << "5 + 3 = " << add(5, 3) << endl;
    cout << "9 + 6 + 7 = " << add(9, 6, 7) << endl;
}

int add(int x, int y) {
    return (x + y);
}

int add(int x, int y, int z) {
    return (x + y + z);
}

系列文規劃

Day 內容
Day 1 SOLID原則
Day 1 單例模式
Day 1 簡單工廠模式
Day 2 工廠模式
Day 2 抽象工廠模式
Day 2 策略模式
Day 2 裝飾者模式
Day 3 觀察者模式
Day 3 命令模式
Day 3 轉接器模式
Day 3 表象模式
Day 4 樣板模式
Day 4 合成模式
Day 4 狀態模式
Day 4 代理模式
Day 5 走訪器模式
Day 5 建造者模式
Day 5 責任鏈模式
Day 5 解譯器模式
Day 6 中介者模式
Day 6 原型模式
Day 6 橋梁模式
Day 7 備忘錄模式
Day 7 蠅量級模式
Day 7 拜訪者模式
#寫作松 #設計模式 #物件導向 #C++







你可能感興趣的文章

JavaScript 是如何被執行的 (2)?

JavaScript 是如何被執行的 (2)?

函式原型方法:bind()、call()、apply()

函式原型方法:bind()、call()、apply()

Day04: GraphQL Server setup with node.js

Day04: GraphQL Server setup with node.js






留言討論