1.鎵懼嚭搴旂敤涓彲鑳介渶瑕佸彉鍖栦箣澶勶紝鎶婂畠浠嫭绔嬪嚭鏉ワ紝涓嶈鍜岄偅浜涗笉闇瑕佸彉鍖栫殑浠g爜娣峰湪涓璧楓?/p>
2.閽堝鎺ュ彛緙栫▼鑰屼笉鏄疄鐜?
3.澶氱敤緇勫悎錛屽皯鐢ㄧ戶鎵?
絳栫暐妯″紡瀹氫箟錛?span style="color: red;">瀹氫箟浜嗙畻娉曟棌錛屽垎鍒皝瑁呰搗鏉ワ紝璁╁畠浠箣闂村彲浠ョ浉浜掓浛鎹紝姝ゆā寮忚綆楁硶鐨勫彉鍖栫嫭绔嬩簬浣跨敤綆楁硶鐨勫鎴楓?/span>
PS錛氱畻娉曟棌鍗寵涓烘棌
浣跨敤絳栫暐妯″紡鏋勫緩涓涓皬搴旂敤錛屾瘮濡傚湪楦熺被涓渶鍩烘湰鐨勮涓烘棌(涔熷氨鏄畻娉曟棌) 椋炶涓庨福鍙紝鑰屾瘡縐嶉笩鐨勮涓虹敋鑷抽兘涓嶄竴鑷達紝濡傛灉瑕佷綘鍐欎釜紼嬪簭鏉ユ紨紺洪笩綾?鍚勭被鍒?錛屼綘璇ユ庝箞鍋氾紵
鍙傜湅絳栫暐妯″紡鐨勫畾涔夛細瀹氫箟綆楁硶鏃忥紝鍒嗗埆灝佽璧鋒潵銆?/span>
鎴戜滑鍙互灝嗛琛屼笌楦e彨鐨勫畾涔夊皝瑁呮垚鎺ュ彛錛屽弬鐪嬩唬鐮侊細
/**
* 椋炶鍩虹被
* @author BruceLeey
*/
public interface IFly {
public void fly();
}
/**
* 鍙敜鍩虹被
* @author BruceLeey
*/
public interface IYell {
public void yell();
}
鏍規嵁涓嶅悓楦熺被椋炶鐨勭壒鐐圭敓鎴愰琛屼笌楦e彨鐨勫疄鐜幫紝姣斿錛?/p>
/**
* 楹婚泙椋炶瀹炵幇綾?br />
* @author BruceLeey
*/
public class MaqFly implements IFly{
public void fly() {
System.out.println("楹婚泙椋炶搗鏉ュ皬宸э紝閫熷害鎱紒");
}
}
/**
* 鑰侀拱椋炶鐨勫疄鐜扮被
* @author BruceLeey
*/
public class YingFly implements IFly{
public void fly() {
System.out.println("鑰侀拱鐨勯琛岄熷害寰堝揩錛岀寧鐗╁嚑涔庢棤澶勫彲閫冿紒");
}
}
楦熺被涓篃瀛樺湪涓嶄細椋炵殑楦燂紝姣斿楦甸笩
/**
* 涓嶄細椋?br />
* @author BruceLeey
*/
public class NowayFly implements IFly{
public void fly() {
System.out.println("寰堟姳姝夛紝瀹冧笉浼氶!");
}
}
楦e彨鐨勫疄鐜頒篃鏄姝ゃ傛帴涓嬫潵鎴戜滑灝卞彲浠ュ畾涔夐笩綾葷殑鍩烘湰綾諱簡銆?/p>
/**
* 楦熺被鍩虹被
* @author BruceLeey
*/
public abstract class Bird {
private IFly fly;
private IYell yell;
public void fly() {
fly.fly();
}
public void yell() {
yell.yell();
}
public abstract void display();
public void setIFly(IFly fly) {
this.fly = fly;
}
public IFly getIFly() {
return this.fly;
}
public void setIYell(IYell yell) {
this.yell = yell;
}
public IYell getIYell() {
return this.yell;
}
}
綆楁硶鏃忕敱GetSet鍊懼叆錛屽湪鍩虹被涓皢琛屼負瀹炵幇錛屼絾涓嶅叿浣撴寚瀹氾紝鍏蜂綋鎸囧畾鐣欑敱瀹㈡埛銆傞夯闆綾誨疄鐜板涓嬶紝鍏朵粬鐨勫啓娉曚害鏄姝ゃ?/p>
/**
* 楹婚泙
* @author BruceLeey
*/
public class Maq extends Bird{
@Override
public void display() {
System.out.println("鎴戞槸楹婚泙!!!");
}
}
鍦ㄩ夯闆鐨勫疄鐜扮被閲屾垜浠凡緇忓皢琛屼負濮旀墭鍒扮埗綾伙紝鐖剁被鍒欏鎵樼粰瀵瑰簲鐨勮涓烘帴鍙o紝榪欏氨鏄細閽堝鎺ュ彛緙栫▼鑰屼笉鏄疄鐜般?/span>
嫻嬭瘯浠g爜涓庢祴璇曚俊鎭涓嬶細
/**
*
* @author BruceLeey
*/
public class TestBird extends TestCase{
public void testMaq() {
Bird bird=new Maq();
bird.setIFly(new MaqFly());
bird.setIYell(new MaqYell());
bird.display();
bird.fly();
bird.yell();
}
public void testYing() {
Bird bird=new Ying();
bird.setIFly(new YingFly());
bird.setIYell(new YingYell());
bird.display();
bird.fly();
bird.yell();
}
public void testTuon() {
Bird bird=new Tuon();
bird.setIFly(new NowayFly());
bird.setIYell(new TuonYell());
bird.display();
bird.fly();
bird.yell();
}
}
杈撳嚭濡備笅錛?/p>
鎴戞槸楹婚泙!!!
楹婚泙椋炶搗鏉ュ皬宸э紝閫熷害鎱紒
楹婚泙鍙搗鏉ュ惐鍚辯殑澹伴煶~~~
鎴戞槸鑰侀拱!!!
鑰侀拱鐨勯琛岄熷害寰堝揩錛岀寧鐗╁嚑涔庢棤澶勫彲閫冿紒
鑰侀拱鍙敜璧鋒潵鏄細鍟革綖锝烇綖锝?/p>
鎴戞槸楦甸笩錛侊紒錛?/p>
寰堟姳姝夛紝瀹冧笉浼氶!
楦甸笩鍙敜璧鋒潵鎴戜篃涓嶇煡閬擄綖锝烇綖--#
鍙傝冭祫鏂欙細銆奌ead First Designer pattern銆?/span>

]]>