Kubeguts' Notes.

Just note it.

Observer Pattern 觀察者模式 [Design Pattern in Java]

觀察者模式可以讓物件了解資料變化的情況。 物件甚至可以在執行期間決定是否要繼續被通知,又或者是可以主動去詢問資料的狀態。 在此模式中也會了解一對多,以及物件鬆綁的意義是如何。 以氣象監測系統的概況來當做例子 假設系統中有三個組成要件: (1) 氣象站: 獲取實際氣象的物理裝置,假設有三個:溫度,濕度,壓力感應 (2) Weather Data物件: 追蹤來自氣象站的資料,並且顯示在佈告版上......

Strategy Pattern 策略模式 [Design Pattern in Java]

可以在執行期動態更換物件的行為 『策略模式』定義了演算法家族,將他們個別封裝起來,可以讓他們之間互相替換,此模式不會影響到使用此演算法的程式。 沒有思考使用設計模式的時候:模擬鴨子版本 假設我們要開發模擬鴨子遊戲,會有各種不同的鴨子,這時候會們通常都會先設計出一個class叫做 Duck,然後Duck會包含鴨子的共同行為:發出叫聲 quack(), 游泳 swin(), 以及展現外觀 di......

Factory Pattern 工廠模式 [Design Pattern in Java]

工廠模式提供了可創建(new)各種不同類別(class)的實例(instance) 工廠模式主要又涵蓋了 (1) 簡單工廠模式 Simple Factory Pattern (2) 工廠方法模式 (3) 抽象方法模式 簡單工廠方法是最初階的用法,會違反OOP的Open-close principle(OCP) 然而工廠方法和抽象方法則比較能讓模組間耦合度降低。 以下會依序做介紹 簡單工廠模......

Singleton Pattern 獨體模式 [Design Pattern in Java]

每次引用類別都只會產出相同的物件 適合用在: 執行緒池(thread pool),快取區(cache),對話盒、處理對話設定和登錄的物件,和驅動程式溝通的物件。 作法 假如有一個類別叫做MyClass,現在要讓MyClass變成獨體模式,讓外面的類別只能透過 MyClass.getInstance() 取得MyClass物件。 12345678910111213141516public c......

Command Pattern 命令模式 [Design Pattern in Java]

命令模式主要將執行的命令, 與執行者做鬆綁的動作 沒有命令模式會是怎樣的寫法?? 假如我們現在要寫一個 遙控器 RemoteControl (執行者), 上面會有很多按鈕功能 (命令) 每個按鈕可能都對應各個功能, 例如 打開, 關閉某些房間的燈 於是我們定義了 Light 抽象類別, 有著 on()與off()開關燈的方法, 並且實作了 LivingRoomLight, KitchenL......

下班自修的經驗分享

最近剛好在Backend版上看到有人Po文問說: “下班後要如何精進自修”, 意外看到許多大大們在下面留言, 正好最近我也在思考要如何精進自己, 所以趁這機會來統整一下大大們提出來的想法並且與自己目前的進修方式做結合, 主要會以Full-Stack engineer的精進方式來做個紀錄分享. 如果對某程式語言&框架掌握度還不夠, 請先熟悉之! 如果上班接觸到某種自己不熟悉的語言或框......

Spring Security 功能介紹

Spring Security 功能介紹 先介紹以下常用認證功能 User name / password 基本認證 使用使用者名稱/密碼做驗證 SSO / Okta / LDAP SSO (Single Sign On) 為OAuth的近一步實現,若已經透過Google取得token, 就可以在其他服務的小網站,都使用Google提供的身份驗證服務 Okta 協助非營利組織的方式。從基本......

Spring Annotation筆記整理

Spring Annotation 筆記 這邊主要整理了我使用或是遇到的Spring Annotation資料查詢與統整的紀錄 API 相關 @Annotation @RestController 將class設置為外部控制器 @RestControllerAdvice 等同於@ControllerAdvice + @ResponseBody @ControllerAdvice為可在宣告的......

認識與學習Bash [Linux鳥哥 Ch10]

Bash shell 功能 打過的指令都是記錄在 ./bash_history. 注意駭客可以透過 history 來查看你先前打過指令 ex: MySQL 登入帳戶密碼資訊 alias 取代很長的指定 若不想要每次打這麼長指令,可以用alias 來取代 例如: ls -a 可以透過 alias lm='ls -al' 以lm來取代 type 查看指令是內部指令或外部指令 像上面例子 l......

2020年的想法與自修規劃

回顧了一下2019年對自己的期許, 自己與期許的似乎還有所差距, 就再接再厲。 希望今年強化自身的網站開發的實力(以後端為主) 接下來2020年想要趁下班閒暇時間時來做: 刷刷leetcode 找一個side project來經營 (預計用Java Spring Boot後端, Angular前端) 複習資料結構,資料庫SQL語法等 以上繼續精進,自我勉勵 ...