前言: 自己在嘗試解釋程式碼的過程中,有感於自己的基礎觀念不夠紮實,夾帶了一些似是而非的錯誤觀念,所以決定趁這個機會重新理解物件導向,把混淆釐清、把概念確立,所...
本篇擷取重點: 封裝是什麼 封裝 能見度之影響 一、封裝的目的 封裝(Encapsulation)的目的,是將程式碼切割成許多模組(Module),使各模...
AOP(Aspect-oriented programming) 名詞解釋 Aspect意思為剖面,Oriented意思為導向,所以翻譯為剖面導向程式設計,這意...
本篇擷取重點: 繼承 繼承的目的及手段 繼承的類別階層 其他和繼承相關的問題 一、繼承(Inheritance) 繼承是一種類別間的階層式分類關係,...
本篇擷取重點: 多載 (Overload) 是什麼 一、多載 (Overload) 多載(Overloading)在寫作程式時,是一個非常實用的觀念。當我...
大名鼎鼎的oo (object-oriented),對沒有程式基礎或剛開始學寫程式的人來說,可能聽起來像是某種代號,但其實物件導向在程式設計領域非常重要! 而O...
管理相依性 Manage Dependencies 在物件導向的程式世界中,物件會有所謂 相依性 的問題,什麼是相依性呢?我們舉現實生活中的車子來理解這個抽象...
昨天有提到物件模型可以幫助我們分解需求、設計系統、實作系統。於1980年代在大型系統設計中有很多研究提出很多設計原則,Robert C. Martin整理了很多...
今天的內容會有比較多的引用,主要是關於書中大師對於物件導向的概念描述,對我來說不是一兩天便可以理解清楚並用自己的文字來表達,今天主要參考的書是物件導向分析設計與...
昨天提到物件模型主要由四個元素構成: 抽象化 封裝 模組化 階層 另外還有三個次要元素: 定型 並行性 續存性 物件模型可以幫助我們分析需求、設計系統、...
程式的撰寫有很多種方式 OOP、FP、AOP、COP...等(之後在專門做一期為大家解說),不過這個系列還是主要專注在物件導向程式設計(OOP)上面跟大家分享。...
你是說...樹嗎? 嘿~丟!鐵人賽至今已經過半,實在是油盡燈枯,想不到主題了,剛好看到這兩個很讚的樹,覺得很適合這次的主題!加上筆者我又對大自然的碎形相當著迷,...
還記得一開始自學程式語言時,大家一定或多或少都聽過一個名詞 物件導向。然後身為程式新手和非程式相關科系畢業的你也許會開始 Google 它到底是什麼意思,然後你...
因為複雜 隨著科技的進步,電腦製造成本下降與運算能力提升,電腦能做的工作越來越多以應付繁雜的日常需求,隨著高階語言的出現(為了應付需求),我們也因能開發出更...
class musashi: def __init__(self,name): self.__name = name def s...
軟件工程的範圍極其廣泛。軟件工程的某些方面可以歸類為數學或計算機科學;其他方面屬於經濟、管理或心理學領域。為了展示軟件工程的廣泛領域。 無論我們是處理計費還是防...
樹葉問題 先前在第三章畫樹時,就有發現把樹葉畫上去時,系統工作時間會增加而導致掉偵,原圖是300x300,50kb左右,不是很大,但是我們要畫一大堆落葉的話,計...
題外話 補充昨天忘記下的結論:不管要繪製的圖案多大,都建議畫(儲存)在一個和原圖一樣大的canvas上,取代原本的圖案,當作未來的繪製來源。 let leafI...
昨天發完文後,覺得對於演算法還是心有不甘,便上網搜尋了一下,雖然沒直接給到答案,間接的給了我一些大膽的想法。 具體參考的是這篇:https://ithelp.i...
接下來終於要談談,讓我們更輕鬆的物件了 其實網路上有很多相關的文章,都可以帶你更深入JS時,但常常問題在於,他們的舉例都不夠實際,並不是說不好,而是「需求的問題...
物件是什麼?為什麼需要它呢? 讓我們接續上回 完成昨天的演示後,也許有人會覺得,處理落葉動畫的流程很簡單,就是「讓落葉自然落下」然後「在畫布上繪製落葉」兩步驟而...
今天挑戰半小時寫完一篇文章(被打,其實我寫完程式了,把文章撰寫出來就好嚕。 https://jerry-the-potato.github.io/Chapt...
前言 前天談到如何避免程式碼散落四處、維護困難,帶大家改寫了物件格式,過了兩天,我突然想到,當時花太多篇幅在解釋觀念和舉例子,結果沒有實際把程式碼秀給大家看,果...
此篇接續第一篇:https://ithelp.ithome.com.tw/articles/10269980接下來我們把造樹的步驟拆分成骨幹、畫樹枝、樹葉,而到...
先補上Demo 將前兩天畫好的樹枝骨幹,搭配第二章學的動畫效果,就能讓樹開始擺動了:https://jerry-the-potato.github.io/Cha...
本文是第二篇,有些變數的名詞會沿用第一篇,建議看過再繼續閱讀唷! 談論更深入一層前,先讓我們複習一下 上回提到,我們用物件的形式儲存了落葉的變數和函式,認識...
物件導向是一種開發程式的方法,就字面的意思是以物件為中心,把數據資料(property)與其相對應的操作(method)包在一起,來模擬現實世界實體和其相互作用...
引言 在上一個主題中,我們成功實現了基本的動畫效果和粒子系統,並設計了一個獨立的繪圖管理工具。然而,對於一個相對簡單的粒子系統來說,這樣的設計似乎有些多餘,因為...
架構設計 延續前幾篇的設計模式,我們的目標是模組化演算法,提供一個生成演算法的工廠,並且把使用方法封裝在 update 和 render 方法中,這裡,物件的初...
架構設計 在昨天的文章中,我們探討了如何創建動態效果,雖然過程中省略了一些細節,但這為我們打下了良好的基礎。今天,我們將逐步補充那些細節,根據昨天的討論,目前的...