📑
scrapbook
  • Introduction
  • 1. Concept
  • 1.1 EAI
  • 1.2 ESB
  • 1.3 EAI v.s. ESB
  • 1.4 SOA
  • 1.5 RESTful
  • 1.6 Microservices
  • 1.7 Microservice v.s. SOA
  • 1.8 Maintain HTTP State
  • 1.8.1 Cookie
  • 1.8.2 Session
  • 1.9 Put, Add, and Set
  • 1.10 Public Key & Private Key
  • 1.11 Message Digest & Hash Function
  • 1.12 Diffie - Hellman Key Exchange
  • 1.13 About IoC
  • 1.14 About AOP
  • 1.15 Spring - Pros and Cons
  • 1.16 Spring - Prototype in Singleton
  • 1.17 HTTP v.s. SPDY
  • 1.18 HTTP/2
  • 1.19 Securing REST Services
  • 1.20 Conway's Law
  • 1.21 大型網站架構演化發展歷程
  • 1.22 Java Generics
  • 1.23 MySQL HA經驗談
  • 2. Questions & Solutions
  • 2.1 海底撈幾根針
  • 2.2 塞不進去
  • 3. Relational Database
  • 3.1 SQL Join Type
  • 3.2 SQL Injection
  • 3.3 MySQL CHAR v.s. VARCHAR
  • 4. NoSQL
  • 4.1 CAP Theorem, ACID v.s. BASE
  • 4.2 Two-Phase-Commit
  • 4.3 RDB v.s. NoSQL
  • 4.4 Structured, Unstructured and Semi-structured Data
  • 4.5 Shard v.s. Replica
  • 4.6 ArrayList v.s. LinkedList
  • 4.7 HashSet v.s. TreeSet
  • 4.8 HashMap v.s. TreeMap
  • 4.9 ArrayList v.s. Vector
  • 4.10 HashMap v.s. HashTable
  • 4.11 Statement, PreparedStatement and CallableStatement
  • 4.12 Overflow of Digits
  • X. JVM
  • X.1 JVM System Threads
  • X.2 Garbage Collection
Powered by GitBook
On this page

Was this helpful?

1.9 Put, Add, and Set

某一天我去面試的時候, 面試我的工程師跟我聊到這三個名詞在Java裡面的意義, 會聊到這個是因為我們談到了Clean Code這本書, 剛好我們都拜讀過這本大作, 所以就聊了一下內容.

好的, 那這三個動詞有什麼差別各位看倌有想過嗎?

對於非native speaker的華人來說, 也許第一反應就是: 不就是插放進去嗎!?

其實不然, 這邊簡單分類一下, 希望大家在實作上也可以使用正確的動詞.

Put: 通常會看到這個動詞是在HashMap之類的資料結構上, 其特性是放入的資料是不重複的(HashMap是要放入K-V pair)

Add: 把可重複的東西放到collection中, 如list.add()

Set: 如一般POJO的setter, 把物件上的attribute value做更改/新增

錯誤的方法命名可能會導致呼叫API的人誤解API行為, 進而導致程式出現bug. 譬如說, 你寫一個包含了add字眼的方法, 結果其他developer拿來用後, 發現有問題, 因為你這個addXXX的方法底層其實是在call HashMap的put.

所以, 在幫方法命名的時候, 要根據場合挑選合適的命名.

當然, 若你覺得我這邊寫的是錯的, 也麻煩糾正我一下.

Previous1.8.2 SessionNext1.10 Public Key & Private Key

Last updated 5 years ago

Was this helpful?