Abstract(抽象類別)與Interface(介面)的差異

  • 108
  • 0
  • C#
  • 2024-07-10

Abstract與Interface的使用時機差異!!

抽象概念先想一下,下列情境題:

我們在玩卡牌遊戲(遊戲王),陷阱卡、魔法卡、怪獸卡都繼承了Card這類別,但我們能然可以new Card()來建立一張新的卡牌,那這張卡牌屬於甚麼類型的卡牌….是不是覺得怪怪的!!

貓與狗都為動物,貓與狗都繼承了Animal類別,但直接new Animal(),這樣這實體動物算哪一種動物!?

我與正在看這篇文章的你皆為工程師,我跟你都繼承的工程師這類別,但我們可以直接new 工程師(),這類別嗎!?

...繼續閱讀 »

AOP過濾器與攔截器的差異

  • 94
  • 0
  • C#
  • 2024-07-10

AOP Filter與Interceptor

無意間接觸了Interceptor,但想想Interceptor做的事不是跟Filter一樣嗎!!!! 但其實是有差異的,就來記錄一下差異!!

AOP(Aspect-Oriented Programming),中文有很多翻譯(特性、切面、橫面)導向程式設計,是一種新的方法論,它是對傳統OOP程式設計的一種補充。OOP是關注將需求功能劃分為不同且相對獨立,封裝成良好的類別,並讓它們有屬於自己的行為模式,依靠繼承和多型等來定義彼此的關係。AOP是希望能夠將通用需求功能從不相關的類別當中分離出來,能夠使得很多類別共享一個行為,一旦發生變化,不必修改很多類別,而只需要修改這個行為即可。AOP是使用切面(Aspect)將橫面關注點模組化,OOP是使用類將狀態和行為模組化。

...繼續閱讀 »

TwoSum

  • 101
  • 0
  • C#
  • 2024-07-10

演算法LeetCode TwoSun

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

...繼續閱讀 »

OOP

  • 205
  • 0
  • C#
  • 2024-07-10

物件導向OOP(Object-oriented programming)

以前都把技術筆記寫在自己的筆記本,想說既然都要寫部落格,把基本的技術觀念也記錄在部落格,增加記憶力XD

物件導向是甚麼:

類別(Class)算是一個藍圖、屬靜態的,他沒有實體(Instance)的概念。
物件(Object)是一個看的到、摸的到的實體,屬於動態的,狀態會隨時改變,但架構與行為不會改變。

比喻:
類別就像是設計房子的設計藍圖,而物件是實際蓋好的房子。
兩者的關係是設計藍圖(類別)決定了房子怎麼蓋,有幾台電梯,幾間房間,幾條走道。
而實際蓋好的房子(物件)是照著設計藍圖所蓋出來的房子,人只能照設計藍圖的設計使用這間房子,並不會多出一個手扶梯,因為藍圖沒有。

...繼續閱讀 »