JavaÉè¼ÆÄ£Ê½Ö®Facadeģʽ
JavaÉè¼ÆÄ£Ê½Ö®Facadeģʽ GOF¡¶Éè¼ÆÄ£Ê½¡·Ò»Êé¶ÔFacadeģʽÊÇÕâÑùÃèÊöµÄ:
¡¡¡¡Îª×ÓϵͳÖеÄÒ»×é½Ó¿ÚÌṩһ¸öͳһ½Ó¿Ú¡£Facadeģʽ¶¨ÒåÁËÒ»¸ö¸ü¸ß²ãµÄ½Ó¿Ú£¬Ê¹×Óϵͳ¸ü¼ÓÈÝÒ×ʹÓá£
¡¡¡¡´óÖÂÒâ˼ÊÇ˵£ºÊ¹ÓÃÒ»ÖÖ±ÈÔÓз½Ê½¸ü¼òµ¥µÄ°ì·¨Óëϵͳ½»»¥¡£ÀýÈ磬ÎÒÃǰÑÒ»¸öºÜÖØÒªµÄÎļþ£¬·ÅÔÚÁ˵ڶþ³éÌëÀ¶øµÚ¶þ¸ö³éÌëµÄÔ¿³×·ÅÔÚÁ˵ÚÒ»¸ö
³éÌëÀÎÒÃÇÒªÏëÈ¡³öÕâ¸öÎļþ£¬µÚÒ»²½¿Ï¶¨ÒªÄõ½µÚÒ»¸ö³éÌëµÄÔ¿³×£¬È»ºó´ò¿ªËüÔÙÄóöµÚ¶þ¸ö³éÌëµÄÔ¿³×£¬×îºó´ò¿ªµÚ¶þ¸ö³éÌëÈ¡³öÎļþ¡£
¡¡¡¡ÎÒ¾ÍÉÏÃæËµµÄÄǸöÇéÐÎдһÏÂʵÏÖ´úÂ룬Ê×ÏÈÎÒÃÇҪʵÏÖ¶þ¸ö×Óϵͳ,ºÇºÇ£¬°Ñ³éÌë±ÈÓ÷³Éϵͳ£¬Óеã¿äÕÅÁË£¨DrawerOne¡¢DrawerTwo£©£º
¡¡¡¡class DrawerOne {
¡¡¡¡public void open(){
¡¡¡¡System.out.println("µÚÒ»¸ö³éÌë±»´ò¿ªÁË");
¡¡¡¡getKey();
¡¡¡¡}
¡¡¡¡public void getKey(){
¡¡¡¡System.out.println("µÃµ½µÚ¶þ¸ö³éÌëµÄÔ¿³×");
¡¡¡¡}
¡¡¡¡}
¡¡¡¡class DrawerTwo{
¡¡¡¡public void open(){
¡¡¡¡System.out.println("µÚ¶þ¸ö³éÌë±»´ò¿ªÁË");
¡¡¡¡getFile();
¡¡¡¡}
¡¡¡¡public void getFile(){
¡¡¡¡System.out.println("µÃµ½Õâ¸öÖØÒªÎļþ");
¡¡¡¡}
¡¡¡¡}
¡¡¡¡public class Client{
¡¡¡¡public static void main(String []args){
¡¡¡¡DrawerOne darwerOne=new DrawerOne();
¡¡¡¡DrawerTwo darwerTwo=new DrawerTwo();
¡¡¡¡darwerOne.open();
¡¡¡¡darwerTwo.open();
¡¡¡¡}
¡¡¡¡}
ÓÉÓÚûÓÐʹÓÃFacadeģʽ£¬¿ÉÒÔ¿´µ½ÒªÏëµÃµ½Õâ¸öÎļþÒªÊ×ÏÈ´ò¿ªµÚÒ»¸ö³éÌ룬ȻºóÔÙ´ò¿ªµÚ¶þ¸ö³éÌ룬ÔÚÎÒÃÇʵ¼ÊËù¿ª·¢µÄϵͳÖУ¬ÓÐʱºò¿Í»§ÒªÊµ
ÏÖijһ²Ù×÷£¬²¢²»ÐèÒªÖªµÀʵÏÖÕâÒ»²Ù×÷µÄÏêϸ²½Ö裬¶øÊǼòµ¥µØµã»÷ijһ¸ö°´Å¥¾Í¿ÉÒԵõ½×Ô¼ºÏëÒªµÄ½á¹û¡£ÏÂÃæ¶ÔÉÏÃæµÄ´úÂëʹÓÃFacadeģʽ½øÐиĽø£¬
½¨Á¢Ò»¸öFacadeDrawerÀࣺ
¡¡¡¡class DrawerFacade{
¡¡¡¡DrawerOne darwerOne=new DrawerOne();
¡¡¡¡DrawerTwo darwerTwo=new DrawerTwo();
¡¡¡¡public void open(){
¡¡¡¡darwerOne.open();
¡¡¡¡darwerTwo.open();
¡¡¡¡}
¡¡¡¡}
¡¡¡¡ÐÞ¸ÄClientÀࣺ
¡¡¡¡public class DrawerClient{
¡¡¡¡public static void main(String []args){
¡¡¡¡DrawerFacade drawer=new DrawerFacade();
¡¡¡¡drawer.open();
¡¡¡¡}
¡¡¡¡}
¡¡¡¡Êä³ö½á¹ûÈçÏ£º
¡¡¡¡µÚÒ»¸ö³éÌë±»´ò¿ªÁË
¡¡¡¡µÃµ½µÚ¶þ¸ö³éÌëµÄÔ¿³×
¡¡¡¡µÚ¶þ¸ö³éÌë±»´ò¿ªÁË
Ïà¹ØÎĵµ£º
ÏÈÀ´Á˽âÒ»ÏÂÁ´±íģʽµÄÔÀí£º
Ê×ÏÈдһ¸öJavaBean£¬ÄÚÈÝÊÇÒªÌí¼ÓµÄÔªËØºÍ¸ÃÔªËØµÄ½Úµã¡£
public class NodeBean implements Serializable
{
private Object data; //ÔªËØ±¾Éí
private NodeBean next; //ÏÂÒ»¸ö½Úµã
&n ......
½ñÌ칤×÷µÄÈÎÎñҪдһЩ¸ú¿ªÔ´ÐÒéÏà¹ØµÄÔ¼¶¨ËµÃ÷£¬ËùÒÔÔÚÍøÉÏËÑË÷ÁËһЩ×ÊÁÏÒÔ¹©²Î¿¼£¬ÏÂÃæÁгöÁ˼¸¸ö±È½Ï³£¼ûµÄ¿ªÔ´ÐÒ飬Èç¹ûÏëÒªÁ˽âÆäËûµÄÐÒé
ºÍÏêϸÁ˽âÕâЩÐÒ飬ÎÒ¸öÈËÍÆ¼öÕâ¸öÍøÖ·£ºhttp://www.opensource.org/licenses/
¡¡¡¡Mozilla Public License
¡¡¡¡MPL License£¬ÔÊÐíÃâ·ÑÖØ·¢²¼¡¢Ãâ·ÑÐ޸쬵«ÒªÇóÐ޸ĺó ......
ת £º http://www.jcourse.cn/read/234
2009-03-02 ×÷Õß:
zhangtaolv
ÔÚÎÒÃÇÈÕ³£¿ª·¢ÖУ¬¾³£»áÓöµ½¶ÔÎı¾µÄ²Ù×÷£¬²¢ÇÒÔÚÒ»°ãµÄMISϵͳÖУ¬Îı¾²Ù×÷ÓÈΪ¶à£¬ÈçÓû§Ãû¡¢ÎÄÕÂÄÚÈÝ¡¢ÎÄÕ±êÌâ¡¢ºÏͬÄÚÈݵȡ£ÔÚ֮ǰµÄ½Ì³ÌÖУ¬ÎÒÒ²¸ø´ó¼Ò½²½âÁËJavaÖÐ×î»ù±¾µÄ×Ö·û´®²Ù×÷µÄÀ࣬String¡£ÔÚ֮ǰµÄ½Ì³ÌÖÐÎÒÒ²¸ø´ó¼Ò½²ÁËStr ......
ÓÉÓÚͬһ½ø³ÌµÄ¶à¸öÏ̹߳²ÏíͬһƬ´æ´¢¿Õ¼ä£¬ÔÚ´øÀ´·½±ãµÄͬʱ£¬Ò²´øÀ´ÁË·ÃÎʳåÍ»Õâ¸öÑÏÖØµÄÎÊÌâ¡£JavaÓïÑÔÌṩÁËרÃÅ»úÖÆÒÔ½â¾öÕâÖÖ³åÍ»£¬ÓÐЧ±ÜÃâÁËͬһ¸öÊý¾Ý¶ÔÏó±»¶à¸öÏß³Ìͬʱ·ÃÎÊ¡£
ÐèÒªÃ÷È·µÄ¼¸¸öÎÊÌ⣺
1)synchronized¹Ø¼ü×Ö¿ÉÒÔ×÷Ϊº¯ÊýµÄÐÞÊηû£¬Ò²¿É×÷Ϊº¯ÊýÄÚµÄÓï¾ä£ ......