(1)抽象
在定義一個類的時候,實際上就是把一類事物的公有的屬性和行爲提取出來,造成一個物理模型,這種研究問題的方法稱爲抽象。接口和抽象類實際就是抽象的體現,以系統的用戶類爲例,定義了用戶註冊、查詢等接口,在後期若是用戶有新的需求,能夠進行擴充。
(2)強內聚/弱耦合/模塊化
在設計的過程當中,咱們將整個項目分爲公寓管理員、系統管理員、學生、宿舍管理等模塊,每一個大的模塊在具體實現過程當中又被分爲多個小模塊,儘可能使得各模塊之間以及模塊內部實現高內聚低耦合。內聚是從功能角度來度量模塊內的聯繫,一個好的內聚模塊應當剛好作一件事。它描述的是模塊內的功能聯繫; 耦合是軟件結構中各模塊之間相互鏈接的一種度量,耦合強弱取決於模塊間接口的複雜程度、進入或訪問一個模塊的點以及經過接口的數據。
(3)信息隱藏和封裝
在面向對象的方法中,信息隱藏經過對象的封裝性來實現。信息封裝就是將模塊設計成"黑箱",實現的細節隱藏在模塊內部,不讓模塊的使用者直接訪問。一個模塊不須要知道另一個模塊的內部狀況,你能夠有效的解除組成系統個模塊之間的耦合關係,使這些模塊能夠獨立開發、測試、優化、修改、理解,這樣能夠加快系統開發的速度,由於這些模塊能夠並行開發。它也減輕了維護的負擔,由於咱們能夠更加快速地理解這些模塊,並在調用的時候不影響其餘模塊。並且信息隱藏和封裝也提升了軟件的可重用性和可維護性。
(4)界面和實現的分離
界面來接收用戶所輸入的數據,根據用戶的需求,在實現模塊來處理用戶所輸入的數據,而後再將根據用戶需求獲得的數據輸出到用戶界面上。git