今天要來聊聊 Creational Patten 當中的工廠模式。 當我們透過類別建立出實例的時候,其實感覺就像是一個工廠生產出了產品。而同一個工廠 (類別),...
首先,先來看看一個簡單、特殊的創造物件的模式。 In software engineering, the singleton pattern is a sof...
在前面的五篇文章當中,我們提到了 SOLID 設計原則,分別為 單一功能原則 Single Responsibility Principle 開放封閉原則 O...
最後,我們來到了 SOLID 當中的介面隔離原則。這裡我們先舉先前提到過的 BaseballPlayer and TennisPlayer 的例子。 由於兩個類...
書同文,車同軌,聽說召喚惡魔時,需要與惡魔簽訂契約,契約內容雙方都得遵守,C#也擁有跟類別簽訂契約的功能 介面(Interface) 在介面命名中大家習慣以I...
今天來談談 SOLID 當中的里氏替換原則,同樣的先來看一下例子。 延續先前的例子,公司持續拓展,滿足更多不同使用者的需求。現在公司決定,讓使用者可以在建立實例...
在上一篇文章當中我們談到開放封閉原則,這裡我們要來談談依賴反轉原則 Dependency inversion principle。先不談定義,先來看範例。 延續...
在人類中,基因肯定是世世代代在傳承,下一代除了接收了上一代的基因之外,可能還會偷偷的進化,C#中也是如此,我們就來一探究竟C#演化的奧妙吧 繼承概述 繼承的概...
在上一篇文章當中,我們提到「單一功能原則」,指每一個類別只會因為一種原因被修改。那麼,如果真的遇到需求變動、需要修改的時候,我們該如何「修改」呢? SOLID...
關於物件導向程式設計的五個設計原則,大家可能會依據不同的順序來解釋,不過我想「單一功能原則」一定會被擺在首位。 這個原則由 "Uncle Bob&qu...
很多便利商店都有他們的制服,穿著一模一樣的制服,就算離開店面,大家都還是擁有極高的辨識度,C#也擁有共同制服的功能 多載 範例:我們先來看一段程式 using...
過去一週我們提到了物件導向程式設計的重要概念,像是類別、抽象類別、介面,以及四大特徵:抽象、封裝、繼承、多型。 這裡讓我嘗試用一段話來整理這些內容之間的關係:...
老闆我要一個豬排漢堡,不要番茄,不要小黃瓜,洋蔥加量,加起司,現實生活中,我們常常會在點餐時跟老闆指定一些配料,而不是餐點上了,才把不喜歡的挑掉,C#世界中,也...
什麼是多型 In programming languages and type theory, polymorphism is the provision o...
每天都在思考,如果事情自己會做好就好了,程式自己會自動檢查就好了,今天C#也有自動檢查變數是否符合要求的功能,我們有請屬性! 訪問器 (Assessor) 把...
什麼是繼承 In object-oriented programming, inheritance is the mechanism of basing an...
在程式語言中萬物皆物件,就如同真實世界中,所有物質接由元素組成一般 物件基本原理 C#通過new來創建物件,執行new後系統會在記憶體分配一個空間給數據成員,...
什麼是封裝 In object-oriented programming (OOP), encapsulation refers to the bundlin...
前面分別聊完了什麼是「物件」、「類別」、「介面」,接下來,就要來聊聊物件導向程式設計當中的四大概念:「抽象」、「封裝」、「繼承」、「多型」 什麼是抽象 In...
什麼是抽象類別 an abstract class, or abstract base class (ABC), is a class that cannot...
在上一篇文章中提到,我們可以將不同類別當中的共同屬性或方法,提取出來放在 parent 類別當中,然後透過繼承的方式,實現這些屬性或方法,同時也可以加入額外的屬...
來建立幾個物件吧 在上一篇文章當中,我們提到可以使用物件來模擬真實世界的事物,那麼我們就來嘗試建立幾個棒球選手的物件吧! 首先,我們建立一個叫做 shohei...
什麼是物件導向程式設計? 物件導向程式設計 (Object-oriented programming) 是眾多程式設計典範 (Programming parad...
關於我 大家好,我是 TD,目前在南方的小島上擔任菜鳥軟體工程師。大學不是主修 CS 或資訊相關科系,是畢業許多年之後才開始接觸程式開發,而後轉職成為軟體工程...
嗨各位~今天要來分享一下關於上次提到 Javascript 沒有類別可以實體化只有物件,那他到底缺乏甚麼?答案是他不會複製物件到其他物件中,只會被連結在一起。...
嗨各位好久不見,今天要來分享上次的續集 第 2 part ,上篇講到建構器今天要來分享關於繼承和多重繼承的部分。 繼承 上次有稍微提到這部分 例如一台車子就...
多型包含了型別的共用、函式的共用、概念的共用。 Photo by @mimithian on Unsplash Swift 的多型 我們知道 Swift 的多...
抱持著重開機的心情,我開始了我的第一堂課。 一開始是學員自我介紹跟課程講解。 稍微帶了一下程式語言,跟設計的概念。 來貼一下,我們的課程規劃。 這是一個chap...
里氏替換原則(Liskov Substitution principle) 網路上有很多文章與範例在解釋6大原則,但是還是很難只看一篇就能了解。一言以蔽之 :...
開閉原則 The Open/Closed Principle (OCP) 開閉原則規定「軟體中的對象(類,模塊,函數等等)應該對於擴展是開放的,但是對於修改是...