就像我們經常所說的:沒有最好的架構,只有最合適的架構。一個好的架構師,可以根據具體的需求、所擁有的資源等因素綜合考慮而設計出最優的架構方案。特別是現在,業務的飛速變化、數據無處不在等這些因素的影響下,技術和框架也需要在變化的過程中不斷地打磨和提升以適應新的業務需要。可能當時是最好的架構,但是後來我們... ...
quick review
配合案例講述設計模式(一些基礎的java和uml知識)
設計時考慮如何使模式變得更好(實踐出真知)
auction auctionItem(封裝和信息隱藏)
面向對象把細節隱藏在對象內部,把公共部分作為介面,抽象成一個類型,然後實例為不同的對象
第一個要想的,哪些細節是要被隱藏起來的,不同於子過程的隱藏,通過將屬性和方法綁定在一起(更高級,將數據也進行了封裝)
設計的最基礎的想法:
關註哪些信息是要暴露給外面,哪些信息需要隱藏
對象可以保持自己的狀態(與過程式編程的區別),把數據一同封裝,代表了對象的狀態
信息類型:
informative(提供一個信息讓對象更新(通知型))
interrogative(要求獲得信息)不會改變對象狀態
imperative(改變狀態)
類:
對象是類不同的數值的拷貝
繼承:
處理行為的變化需求
繼承父類以應對變化(多態)
多態:
動態綁定非常必要(運行時綁定)
重寫
重載
泛型:
構建類型
UML:
類圖
類域(靜態域)
構造型
繼承
介面
關聯(對象 link 類 association)(也可以是一種類)
名字、角色、秩
特殊的關聯關係:
組合:組成的部分(更強)email-message(header,paragragh...)類型是不同的 黑色菱形 組建的角色是重要的 組合體沒有成分不可存在 在更大的設計模式中可以只關註組合體
聚合:臨時性的聚集,可以屬於多個聚合體,往往是相同類型的 白色菱形 聚合體缺少成分可以存在 可以做遞歸