??? ??(Design Pattern)? ???? ????? ??? ??, ????? ???? ?? ??? ??? ???? ??? ?????. ??? ??? ???? ??? ??? ?????, ?? ??? ??? ? ?? ??? ? ??? ??, ?? ???? ???? ????. ??? ??? ?? ??? ?? ??, ??? ??? ???? ??(win-win)??? ?? ??? ??? ????. ??? ??? ?? ??? ??? ??????? ????. ??? ??? ??? ??? ????? ????? ?????? ?????.
??? ??(?? ??? ??)? ?? ?? ????? ???? ??? ?? ??????. ? ??? 1990?? Erich Gamma ?? ?? ?? ??? ???? ??? ??? ???????. ? ??? ??? ??? ??? ????. ????? ??? ????? ?? ??? ??? ??? ??? ??? ????. ??? ??? ????? ?? ???? ?? ???? ??? ? ?? ??? ?????. ??? ??? ??? ????? ??? ??? ???? ?? ????? ??? ? ??? ????? ???? ???? ?? ?? ??? ?????. ??? ??? ????? ????? ??? ?????.
????? ?? ?????? ??? ??? ?? ??? ???? ?? ?? ?? ??? ???? ?? ???? ????? ?????? Ward Cunningham? ??? ??? ?? ??? ???? ?? WikiWiki? ??????.
?: ? ??????? Java ??? ?? ??? ??? ??? ???? ?????. ??? Java ??? ?? ??? ???.
????
????? ??? ??? ???? ??? ???? ?? ???, ??? ??? ????. ????? ???? GoF ?? ??? ??? ?? ??? ?? ???? ????.
?? ??: ? ???? ??? ??? ???, ?? ??? ?? ???? ?? ??? ? ????.
??: ?? ?? ??? ?? ?? ???? ?? ??? ??? ?? ?? ?? ??? ???? ???.
???: ? ??? ?? ???? ???? ???? ??? ?? ??, ??, ?? ?? ? ?? ??? ?????.
??: ??? ? ??? ??? ?? ? ????. ? ????? ??? ??? ???? ???.
??: ? ??? ???? ?? ? ??? ??? ???(?? ? ?? ??)? ?? ??? ????.
???: ??? ???? ??, ??? ?? ?
??: ????? ???? ??? ?????? ?? ?? ?????? ? ??? ? ??? ?????.
???: ? ????? ? ??? ???? ??? ? ?? ??? ??? ????? ???? ??? ?????.
??: ? ???? ???? ?? ?? ?? ??? ?????.
??: ? ??? ???? ???? ??? ? ???? ??? ??? ?? ????? ???? ?? ??? ??? ??. ???? ???? ??? ?????. ? ????? ? ?? ??? ??, ??? ? ???? ???? ???.
??: ? ????? ?? ??, ??? ?? ?? ???, ?? ??? ?? ??? ?? ?? ?? ??? ???? ???. ?? ?? ??.
?: ????? ???? ??? ???? ??? ???? ?????.
??? ?? ????: ??? ??? ?? ?????.
?? ??: ? ???? ?? ?? ???? ??? ?? ??? ???? ???? ???? ????.
?: ??? ?? ????? ??? ??? ?? ?? ?? ??? ? ??? ???. ???? ?? PHP ??? ????? ??? ?????? ???? ????? ?????????.
?? ??
??? ??? ??? ??? ?? ??????. ???? ??? ? ??? ??? ???? ???? ? ??? ??? ?? ??? ???? ????? ????
??? ???? ? ??? ? ???. ??? "??? ??"? ???? ??? ?? ????? ?? ???? ??? ???. ??? "Gang of Four"? ??? ??? ?? ?? ??? ?? ???? ?? ??? ??????. ?? ?? ???? ? ???? ?? ?? ?? ?????. . ??? ?? ????? '??'?? ??? ?? ???? :)) ??? ?? ? ?? ???? ?????. "?? ??? ??? ?? ??? ?? ??"?? ?? ???? ???? ???, ??? ???? ?????!
? "??? ??"? ???? ???? ???? ??? ??? ????? ?????? ??? ?????.
???? ?? ???? ??? ??? ? ????? OO ???? "Open Closed Principal" ??, Liskov ?? ??, ?? ? ??? ?? ? ?? ??? ? ?? ??? ????. ??? ??? ?? ???? ???? ?? ???? ??? ?? ??? ??? ?????.
??-?? ??
? ??? "Bertrand Meyer"? ??????. ?? ???? "????? ???? ??? ?? ?? ??? ??? ??? ???? ?? ??? ???"???. ?, ??? ??? ?? ?? ??? ??? ??? ???? ?? ??? ???. ??? ??("??", ?? ?? ??) ??? ???? ?? ??? ???? ???. ???? ??? ??? ???? "?? ??"? ???????. ???? ?? ?? ???? ??? ??? ???? ??? ??? ??? ?????. ??? ?? ?? "CD ?? ?? ?????"? ?????. ?? "CD" ?????? ????? ???. ??? ??: [pre]______________|<>|| CD ||_____________||+Sell() || ||_____________|[/pre] ??? ?? ??? ???? ??? ??? ? ?? ?????. ??? "DiscFactory"? ?? ??? ???? ?????. ??? ??? ????.
publicclassDiscFactory{ publicstatic光盤 getDisc(Stringname){ return(光盤)Class.forName(name).getInstance(); } }
??? ?? ?? ???? ?? ??? ??? ?? ????
public class boy { public static void main(String[] args){ CD d=DiscFactory.getDisc("Pirate Disc"); CD.Sell() } }
??? ? ??? ??? ?? ???, ?? ????? ??? ?????. ??? ???? ????. "?? ?????"?? "CD"? ? ?? ?? ??? ???? ???. ?? ??? ??? ??? ??? ????. ???? ??? ?? ?? ?? ??? ?? ?? ????. "??-?? ??" ??? ??? ?? ??? ?????. ?? ??????? ? ?? ???? ??? ? ????. ? "???"? ????? "?? ??? ??"? ???.
??? ?? ??
???? ?? ??? "Barbara Liskov"? ??????. ?? ???? ???? ?? ???? ???? ??? ? ????. ?: CD d=new ?? ?? ???(); d.sell(); "?? ???" ??? "??? ??" ??? ????? ?? ?? ?? ??? ??? ? ????. Java ????? ????? Liskov ?? ??? ????? ?????. ??? ?? ??? ??? ??????? ?? ???? ??? ???? ?? ??? ??? ?? ???? ?? ???? ?? ??? ???? ?? ? ????. ?? ??, "CD"? "Sell" ???? ?? ??? ??? "public"? ?? "Pirate Disc" ? "Raw Film"? "Sell" ???? ????? ???? ??? ? ??? ??? ???? ????. ? ??? ???? ???? ??? ????: "??? ???"? "??" ??? ????? ??. ??? ?? ??? ??? ? ????. CD d=new ?? ??? disk(); d. Liskov ?? ??? ?? ? ???? ???? ? ? ????.
?? ? ???? ??
? ??? ? ???? ?? ??? ? ?? ????? ?????. ?? ??? ?? ????? ??? ?? ????. ??????? ???? ?? ???? ?? ? ???? ?????? ??? ?? ???? ???? ??????? ???? ?? ???? ?? ?????. ? ?? ??? ?????? ?? ???? ???? ???? ???, ?? ???? ???? ????. "??? ???? ? ??? ??? ???"! ?? ??? ??? ??? ? ?? ?? ??? ???? ????.
Java??? ?? ?????? ?????? ?? ?????? ???? ???. ??? ?? ?? ???? ???? ?? ???? ???? ??? ??? ?? ????. ? ????? ?? ???? ??? ??? ?????, "?? ??? ???? ???." ??? ?? ??? ?? ???? ??? ?? ????? ?? ??? ????. ???? ?????? ??? ? ?? ???
??? ??? ???? ??? ??? ??? ? ?? ??? ?? ??? ??? ??? ?????? ?? ????. Zhang Wuji? ???? ??? ?? ??? ?? ??? "? ?? Xuan Mi"? ?? ??????. ??? ??? ????? ? ? ????. ?? ?? ??? ??? ?? ?? ??? ????? ??? ?? ?? OO? ?? ???? ? ? ????. ??, ??, ??! (JR)
??? ?? ?? ???? ?? ??? ????? ? ???. ?? ??? ?? ?????? ?? ??????
??? ?? ??
? ?? ???????? ???. ????? ??? ? ?? ??? ?? ???? ? ?? ??? ???? ??????. ?? ??? ??? ??? ? ??? ???? ??? ???? ??? ? ??? ????. ?? ?? ???? ???? ????? ?????? ?? ???? ?? ???? ?? ??? ????. ?? ????? ?? ??? ?? ???? ?????. ??? ?, ??
????? ??? ??
??, ?? ?? ?? ??, ?? ??? ? ?? ???, ?? ???, ?? ???? ?? ????. ????? ????
-
?? ???
???? ?? ???? ?? ???? ????? ? ???? ?? ??? ???? ?????. ??: ?? ?? ????? ?? ??? ??? ????? ?? ?? ??? ?? ????? ???. ?, ??? ???? ???? ????. ??? ? ?? ?? ??? ?? ???? ?????. 7 ????? ?? ?? ?? ??. ?? ??? ????? ????.
? ??? ?? ???? ????? ??? ??
? ??? ?? ????? Factory Pattern, Abstract Factory Pattern, Singleton Pattern, Builder Pattern(Builder Pattern), Prototype Pattern(Prototype Pattern), ?.
?:? ????? ? ??? ??? ??? ? ? ??? ???? ? ??? ?? ?? Java ??? ???? ????.
?? ?
- 傳輸對象模式 2016-10-18
- 服務(wù)定位器模式 2016-10-18
- 攔截過濾器模式 2016-10-18
- 前端控制器模式 2016-10-18
- 數(shù)據(jù)訪問對象模式 2016-10-18
- 組合實體模式 2016-10-18
- 業(yè)務(wù)代表模式 2016-10-18
- MVC 模式 2016-10-18
?? ??
- ??? ???? ?? ?? 2022-09-30
- ?? ?? HTTP ???? ??? ???? 2022-04-14
- ?? ?? ??? ??? ???? 2022-04-18
- ?? ?? ??? ?? ??? ???? 2022-04-21
- ??? ???? ?? - ?????? ????? ?? ?? ?? 2021-11-22
- ?????? ?? ?? ???? - HTTP ????? ?? ??? ?? 2021-11-19
- ? ??? ???? HTTP ????? ?? 1?? ?? ?? 2021-11-26
- 90? ?? ?? ??? ??????(???? ???? | HTTP | ? ??) 2021-12-10