可變性原則的封裝就是指將可變的元素封裝起來。
abstract class person/** 不管男性女性都有走路的行為
* */
public void run()
public void eat()
public abstract void method();
}class man extends person
/*** 這是男性特有的行為,打仗(當然女性也可以打仗,我們只假設男性會打仗)
*/public void method()
}class women extends person
/*** 女性有生育的行為
*/public void method()
}public class hello
}由於person是可變的,所以我們對其進行了抽象封裝,man和women分別對其進行了繼承,那麼我們如何讓它可變呢,衍生出不同的子類就是一種可變,更嚴格的說就是一種擴充套件。
關於不可變性與可變性的「巢狀」聯想
先給出定義 先申述乙個概念 變數 引用 值 也就是 該變數初始化的記憶體 可變性與不可變性 引用可變與否,值可變與否。值的可變性取決於 值的型別是否是可變的,這取決於建立該值的類是否可變。而引用的可變性取決於 該變數命名時是否字首有 final 那麼對於乙個物件而言,其不可變性的程度 是什麼?乙個物...
支援非可變性
概念 乙個非可變性的類是乙個簡單的類,每個例項包括的資訊都是他在被建立的時候就提供出來的,並且在物件的生命週期內不是不能更改的。這樣的類如 string,biginteger等等。為什麼會有這樣的類呢?他們包含了優雅的設計思想 簡單,不可變,穩定。其實有點很提倡使用非可變類,但是不一定非要使用。下面...
共性和可變性分析
考慮設計中什麼應該是可變的。這種方法與關注引起重新設計的原因剛好相反。它不是考慮什麼會迫使設計發生改變,而是考慮什麼能夠在不引起重新設計的前提下改變。這時主要關注的就是對變化的概念進行封裝,這時許多設計模式的主題。如何在問題領域中找到不同變化,如何找到不同領域中的共同點。找到變化的地點,稱為 共性分...