<script> var Model = function( sex ){ this.sex = sex; }; Model.PRototype.takePhone = function(){ console.log( "sex = " + this.sex + " " + "underwear = " + this.underwear ); }; //分別創建一個男模特和一個女模特 var maleModel = new Model( "male" ); var femaleModel = new Model( "female" ); //給男模特依次穿上所有的男裝,并進行拍照 for( var i = 0; i < 50; ){ maleModel.underwear = ++i; maleModel.takePhone(); } //同樣,給女模特穿上所有的女裝,并進行拍照 for( var i = 0; i < 50; ){ femaleModel.underwear = ++i; femaleModel.takePhone(); } //可以看到,改進之后的代碼,只需要兩個對象便完成了同樣的功能 </script><h1>內部狀態與外部狀態</h1><p>以上的例子便是享元模式的雛形,享元模式要求將對象的屬性劃分為內部狀態與外部狀態。</p><p>享元模式的目標是盡量減少共享對象的數量,關于如何劃分內部狀態和外部狀態,下面的幾條經驗提供了一些指引。</p><p>1.內部狀態存儲于對象內部;2.內部狀態可以被一些對象共享;3. 內部狀態獨立于具體的場景,通常不會改變;4.外部場景取決于具體的具體的場景,并且根據場景而變化,外部狀態不能被共享。</p>
新聞熱點
疑難解答