Ò»¡¢Éè¼ÆÔÔòÒâÒå
ΪÁËÉè¼Æ³öÒ»¸öºÃµÄÈí¼þϵͳ¡£ÎÒÃDZØÐë×ñÕÕÒ»¶¨µÄ¹æÔò¡£
ºâÁ¿Èí¼þÉè¼ÆÖÊÁ¿µÄÊ×Òª±ê×¼ÊǸÃÉè¼ÆÊÇ·ñÄÜÂú×ãÈí¼þµÄ¹¦ÄÜÐèÇó¡£³ýÁ˹¦ÄÜÐèÇóÒÔÍ⣬»¹ÓкܶàºâÁ¿Èí¼þÉè¼ÆÖÊÁ¿µÄ±ê×¼£¬°üÀ¨¿É¶ÁÐÔ¡¢¿É¸´ÓÃÐÔ¡¢¿ÉÀ©Õ¹ÐÔ¡¢¿Éά»¤ÐԵȡ£
1¡¢Ò»°ãÒ»¸öºÃµÄÈí¼þ¾ßÓÐÒÔÏÂÌØµã£º
¿É¶ÁÐÔ£ºÈí¼þµÄÉè¼ÆÎĵµÊÇ·ñÇáÒ×±»ÆäËû³ÌÐòÔ±Àí½â¡£¿É¶ÁÐÔ²îµÄÉè¼Æ»á¸ø´óÐÍÈí¼þµÄ¿ª·¢ºÍά»¤¹ý³Ì´øÀ´ÑÏÖØµÄΣº¦¡£
¿É¸´ÓÃÐÔ£ºÈí¼þϵͳµÄ¼Ü¹¹¡¢Àà¡¢×é¼þµÈµ¥ÔªÄÜ·ñºÜÈÝÒ×±»±¾ÏîÄ¿µÄÆäËü²¿·Ö»òÕ߯äËüÏîÄ¿¸´Óá£
¿ÉÀ©Õ¹ÐÔ£ºÈí¼þÃæ¶ÔÐèÇó±ä»¯Ê±£¬¹¦ÄÜ»òÐÔÄÜÀ©Õ¹µÄÄÑÒ׳̶ȡ£
¿Éά»¤ÐÔ£ºÈí¼þά»¤£¨Ö÷ÒªÊÇÖ¸Èí¼þ´íÎóµÄÐ޸ġ¢ÒÅ©¹¦ÄܵÄÌí¼ÓµÈ£©µÄÄÑÒ׳̶ȡ£
2¡¢Äھ۶ȺÍñîºÏ¶È±ê×¼£º
ÄÚ¾Û¶È£º
±íʾһ¸öÓ¦ÓóÌÐòµÄµ¥¸öµ¥ÔªËù¸ºÔðµÄÈÎÎñÊýÁ¿ºÍ¶àÑùÐÔ¡£ÄÚ¾ÛÓëµ¥¸öÀà»òÕßµ¥¸ö·½·¨µ¥ÔªÏà¹Ø¡£ºÃµÄÈí¼þÉè¼ÆÓ¦¸Ã×öµ½¸ßÄÚ¾Û¡£
ÀíÏë״̬Ï£¬Ò»¸ö´úÂëµ¥ÔªÓ¦¸Ã¸ºÔðÒ»¸öÄÚ¾ÛµÄÈÎÎñ£¬Ò²¾ÍÊÇ˵һ¸öÈÎÎñ¿ÉÒÔ¿´×÷ÊÇÒ»¸öÂß¼µ¥Ôª¡£Ò»¸ö·½·¨Ó¦¸ÃʵÏÖÒ»¸öÂß¼²Ù×÷£¬Ò»¸öÀàÓ¦¸Ã´ú±íÒ»ÖÖÀàÐ͵ÄʵÌå¡£
ÄÚ¾ÛÔÔò±³ºóµÄÖ÷ÒªÔÒòÊÇÖØÓãºÈç¹ûÒ»¸ö·½·¨»òÒ»¸öÀàÖ»¸ºÔðÒ»¸ö¶¨ÒåÃ÷È·µÄÊÂÇ飬ÄÇôÔÚ²»Í¬µÄÉÏÏÂÎÄ»·¾³ÖУ¬Ëü¾ÍÄܸüºÃµØ±»ÔÙ´ÎʹÓá£
×ñѸùæÔòµÄÁíÒ»¸öÓŵãÊÇ£¬µ±Ò»¸öÓ¦ÓóÌÐòµÄijЩ·½ÃæÐèÒª×ö³ö¸Ä±äʱ£¬ÎÒÃÇÄܹ»ÔÚÏàͬµ¥ÔªÖÐÕÒµ½ËùÓÐÏà¹ØµÄ²¿·Ö¡£
Èç¹ûÒ»¸öϵͳµ¥ÔªÖ»¸ºÔðÒ»¼þÊÂÇ飬¾Í˵Ã÷Õâ¸öϵͳµ¥ÔªÓкܸߵÄÄÚ¾Û¶È£»Èç¹ûÒ»¸öϵͳµ¥Ôª¸ºÔðÁ˺ܶ಻Ïà¹ØµÄÊÂÇ飬Ôò˵Ã÷Õâ¸öϵͳµ¥ÔªÊÇÄھ۶Ⱥܵ͡£Äھ۶ȺܸߵÄϵͳµ¥ÔªÍ¨³£ºÜÈÝÒ×Àí½â£¬ºÜÈÝÒ×±»¸´Óá¢À©Õ¹ºÍά»¤¡£
Èç¹ûÒ»¸ö·½·¨¿ÉÒÔÓüòµ¥µÄ¡°¶¯´Ê+Ãû´Ê¡±µÄÐÎʽÀ´ÃüÃû£¨ÀýÈ磬loadFile()¡¢getName()£©£¬»òÕßÈç¹ûÒ»¸öÀà¿ÉÒÔÓÃ׼ȷµÄÃû´ÊÀ´ÃüÃû£¨ÀýÈ磬Employee¡¢Student£©£¬ÄÇôÕâÑùµÄÀà»òÕß·½·¨¾ÍÊÇÄھ۶ȽϸߵÄϵͳµ¥Ôª£»·´Ö®£¬Èç¹ûÀà»òÕß·½·¨µÄÃû×Ö±ØÐë°üº¬¡°ºÍ¡±¡¢¡°»ò¡±µÈ×ÖÑù²ÅÄÜ׼ȷ·´Ó³Æä¹¦ÄÜÌØÐԵϰ£¬ÕâЩÀà»ò·½·¨µÄÄھ۶ȾÍÒ»¶¨²»¸ß¡£
ñîºÏ¶È£º
ñîºÏ¶È±íʾÀàÖ®¼ä¹ØÏµµÄ½ôÃ̶ܳȡ£ñîºÏ¶È¾ö¶¨Á˱ä¸üÒ»¸öÓ¦ÓóÌÐòµÄÈÝÒ׳̶ȡ£ÔÚ½ôÃÜñîºÏµÄÀà½á¹¹ÖУ¬¸ü¸ÄÒ»¸öÀà»áµ¼ÖÂÆäËüµÄÀàÒ²ËæÖ®ÐèÒª×ö³öÐ޸ġ£ÏÔÈ»£¬ÕâÊÇÎÒÃÇÔÚÀàÉè¼ÆÊ±Ó¦¸Ã±ÜÃâµÄ£¬ÒòΪ΢СµÄÐ޸ĻáѸËÙ²¨¶¯Ó°Ïìµ½Õû¸öÓ¦ÓóÌÐò¡£´ËÍ⣬ÕÒµ½ÐèÒªÐ޸ĵÄËùÓеĵط½ÊDZØÐëµÄ£¬Êµ¼ÊÉϾÍʹµÃÐ޸ıäµÃÀ§ÄѲ¢ÇҺķÑʱ¼ä¡£¶øÔÚËÉÉ¢ñîºÏµÄϵͳÖУ¬ÎÒÃÇ¿ÉÒÔ¸ü¸ÄÒ»¸öÀ࣬²»ÐèÒªÐÞ¸ÄÆäËüÀ࣬¶øÓ¦ÓóÌÐòÈÔÈ»Äܹ»Õý³£¹¤×÷¡£
¸ÅÀ¨ÆðÀ´£¬½ÏµÍµÄñîºÏ¶ÈºÍ½Ï¸ßµÄÄÚ¾Û¶È£¬Ò²¼´ÎÒÃdz£ËµµÄ¡°¸ßÄÚ¾Û¡¢µÍñîºÏ¡±ÊÇËùÓÐÓÅÐãÈí¼þµÄ¹²Í¬ÌØÕ÷¡£
Èç¹ûÒ»¸öÈí¼þµÄÄھ۶ȺÍñîºÏ¶È¶¼·ûºÏÒªÇó£¬ËüÒ²¾Í×ÔÈ»¾ß±¸Á˱ȽϺõĸ´ÓÃÐÔ¡¢¿ÉÀ©Õ¹ÐԺͿÉά»¤ÐÔ¡£
¶þ¡¢7´óÉè¼ÆÔÔò
1¡¢µ¥Ò»Ö°ÔðÔÔò
µ¥Ò»Ö°ÔðÔÔò£¨Single Responsibility Principle£¬SRP£©ÊÇÖ¸£ºËùÓеĶÔÏó¶¼Ó¦¸ÃÓе¥Ò»µÄÖ°Ôð£¬ËüÌṩµÄËùÓеķþÎñÒ²¶¼½öÎ§ÈÆ×ÅÕâ¸öÖ°Ôð¡£»»¾ä»°Ëµ¾ÍÊÇ£ºÒ»¸öÀà¶øÑÔ£¬Ó¦¸Ã½öÓÐÒ»¸öÒýÆðËü±ä»¯µÄÔÒò£¬ÓÀÔ¶²»ÒªÈÃÒ»¸öÀà´æÔÚ¶à¸ö¸Ä±äµÄÀíÓÉ¡£
ÀàµÄÖ°ÔðÊÇÓɸÃÀàµÄ¶ÔÏóÔÚϵͳÖеĽÇÉ«Ëù¾ö¶¨µÄ¡£
Ò»¸öÀàÈç¹ûÓжà¸öÖ°Ôð£¬Ò²Óжà¸ö¸Ä±äËüµÄÀíÓÉ¡£·´Ö®£¬Èç¹ûÄãÄÜÏëµ½Ò»¸öÀà´æÔÚ¶à¸öʹÆä¸Ä±äµÄÔÒò£¬ÄÇôÕâ¸öÀà¾Í´æÔÚ¶à¸öÖ°Ôð¡£
2¡¢¿ª±ÕÔÔò
¿ª±ÕÔÔò£¨Open-Close Principle£¬¼ò³ÆOCP£©ÊÇÖ¸Ò»¸öÈí¼þʵÌ壨Àࡢģ¿é¡¢·½·¨µÈ£©Ó¦¸Ã¶ÔÀ©Õ¹¿ª·Å£¬¶ÔÐ޸Ĺرա£
×ñÑ¿ª±ÕÔÔòÉè¼Æ³öÀ´µÄÄ£¿é¾ßÓÐÁ½¸ö»ù±¾ÌØÕ÷£º
¶ÔÓÚÀ©Õ¹ÊÇ¿ª·ÅµÄ£¨Open for extension£©£ºÄ£¿éµÄÐÐΪ¿ÉÒÔÀ©Õ¹£¬µ±Ó¦ÓõÄÐèÇó¸Ä±äʱ£¬¿ÉÒÔ¶ÔÄ£¿é½øÐÐÀ©Õ¹£¬ÒÔÂú×ãеÄÐèÇó¡£
¶ÔÓÚ¸ü¸ÄÊÇ·â±ÕµÄ£¨Closed for modification£©£º¶ÔÄ£¿éÐÐΪÀ©Õ¹Ê±£¬²»±Ø¸Ä¶¯Ä£¿éµÄÔ´´úÂë»ò¶þ½øÖÆ´úÂë¡£
ÕâÁ½¸öÌØÕ÷¿´ÆðÀ´ÊÇÏ໥ì¶ÜµÄ¡£À©Õ¹Ä£¿éµÄÐÐΪͨ³£ÐèÒªÐ޸ĸÃÄ£¿éµÄÔ´´úÂ룬¶ø²»ÔÊÐíÐ޸ĵÄÄ£¿éͨ³£±»ÈÏΪÊǾßÓй̶¨µÄÐÐΪ¡£
ʵÏÖ¿ª±ÕÔÔòµÄ¹Ø¼üÔÚÓÚ³éÏ󻯡£ÔÚJavaÖУ¬³éÏ󻯵ľßÌåʵÏÖ¾ÍÊÇʹÓóéÏóÀà»ò½Ó¿Ú¡£
2.1ʹÓóéÏóÀà
ÔÚÉè¼ÆÀàʱ£¬¶ÔÓÚÓµÓй²Í¬¹¦ÄܵÄÏàËÆÀà½øÐгéÏ󻯴¦Àí£¬½«¹«ÓõŦÄܲ¿·Ö·Åµ½³éÏóÀàÖУ¬¶ø½«²»Í¬µÄÐÐΪ·â×°ÔÚ×ÓÀàÖС£ÕâÑù£¬ÔÚÐèÒª¶Ôϵͳ½øÐй¦ÄÜÀ©Õ¹Ê±£¬Ö»ÐèÒªÒÀ¾Ý³éÏóÀàʵÏÖеÄ×ÓÀ༴¿É¡£ÔÚÀ©Õ¹×ÓÀàʱ£¬²»½ö¿ÉÒÔÓµÓгéÏóÀàµÄ¹²ÓÐÊôÐԺ͹²Óз½·¨£¬»¹¿ÉÒÔÓµÓÐ×Ô¶¨ÒåµÄÊôÐԺͷ½·¨¡£
2.2½Ó¿Ú
Óë³éÏóÀ಻ͬ£¬½Ó¿ÚÖ»¶¨ÒåʵÏÖÀàÓ¦¸ÃʵÏֵĽӿڷ½·¨£¬¶ø²»ÊµÏÖ¹«ÓеŦÄÜ¡£ÔÚÏÖÔÚ´ó¶àÊýµÄÈí¼þ¿ª·¢ÖУ¬¶¼»áΪʵÏÖÀඨÒå½Ó¿Ú£¬ÕâÑùÔÚÀ©Õ¹×ÓÀàʱ±ØÐëʵÏָýӿڡ£Èç¹ûÒª¸Ä»»ÔÓеÄʵÏÖ£¬Ö»ÐèÒª¸Ä»»Ò»¸öʵÏÖÀ༴¿É¡£
3¡¢ÀïÊÏÌæ»»ÔÔò£¨The Liskov Substitution Principle£¬LSP£©
ÔÚÒ»¸öÈí¼þϵͳÖУ¬×ÓÀàÓ¦¸ÃÄܹ»ÍêÈ«Ìæ»»Èκθ¸ÀàÄܹ»³öÏֵĵط½£¬²¢ÇÒ¾¹ýÌæ»»ºó£¬²»»áÈõ÷Óø¸ÀàµÄ¿Í»§³ÌÐò´ÓÐÐΪÉÏÓÐÈκθı䡣
ÀïÊÏÌæ»»ÔÔòʵÏÖÁË¿ª±ÕÔÔòÖеĶÔÀ©Õ¹¿ª·Å¡£ÊµÏÖ¿ª±ÕÔÔòµÄ¹Ø¼ü²½ÖèÊdzéÏ󻯣¬¸¸ÀàÓë×ÓÀàÖ®¼äµÄ¼Ì³Ð¹ØÏµ¾ÍÊÇÒ»ÖÖ³éÏ󻯵ÄÌåÏÖ¡£Òò´Ë£¬ÀïÊÏÌæ»»ÔÔòÊÇʵÏÖ³éÏ󻯵ÄÒ»Öֹ淶¡£Î¥·´ÀïÊÏÌæ»»ÔÔòÒâζ×ÅÎ¥·´ÁË¿ª±ÕÔÔò£¬·´Ö®Î´±Ø¡£ÀïÊÏÌæ»»ÔÔòÊÇʹ´úÂë·ûºÏ¿ª±ÕÔÔòµÄÒ»¸öÖØÒª±£Ö¤¡£
Ò»°ãÀ´Ëµ£¬Ö»ÒªÓпÉÄÜ£¬¾Í²»Òª´Ó¾ßÌåÀà¼Ì³Ð¡£ÔÚÒ»¸öÓɼ̳йØÏµÐγɵĵȼ¶½á¹¹ÖУ¬Ê÷Ò¶½Úµã¶¼Ó¦µ±ÊǾßÌåÀ࣬Ê÷Ö¦½Úµã¶¼Ó¦¸ÃÊdzéÏóÀà»òÕß½Ó¿Ú¡£
ÀïÊÏÌæ»»ÔÔòÊÇʹ´úÂë·ûºÏ¿ª±ÕÔÔòµÄÒ»¸öÖØÒªµÄ±£Ö¤£¬Í¬Ê±£¬ËüÌåÏÖÁË£º
3.1ÀàµÄ¼Ì³ÐÔÔò
ÀïÊÏÌæ»»ÔÔò³£ÓÃÀ´¼ì²éÁ½¸öÀàÊÇ·ñΪ¼Ì³Ð¹ØÏµ¡£ÔÚ·ûºÏÀïÊÏÌæ»»ÔÔòµÄ¼Ì³Ð¹ØÏµÖУ¬Ê¹Óø¸Àà´úÂëµÄµØ·½£¬ÓÃ×ÓÀà´úÂëÌæ»»ºó£¬Äܹ»ÕýÈ·µÄÖ´Ðж¯×÷´¦Àí¡£»»¾ä»°Ëµ£¬Èç¹û×ÓÀàÌæ»»Á˸¸Ààºó£¬²»Äܹ»ÕýÈ·Ö´Ðж¯×÷£¬ÄÇôËûÃǵļ̳йØÏµ¾ÍÊDz»ÕýÈ·µÄ£¬Ó¦¸ÃÖØÐÂÉè¼ÆËüÃÇÖ®¼äµÄ¹ØÏµ¡£
3.2¶¯×÷ÕýÈ·ÐÔ±£Ö¤
ÀïÊÏÌæ»»ÔÔò¶Ô×ÓÀà½øÐÐÁËÔ¼Êø£¬ËùÒÔÔÚΪÒÑ´æÔÚµÄÀà½øÐÐÀ©Õ¹£¬À´´´½¨Ò»¸öеÄ×ÓÀàʱ£¬·ûºÏÀïÊÏÌæ»»ÔÔòµÄÀ©Õ¹²»»á¸øÒÑÓеÄϵͳÒýÈëеĴíÎó¡£
3.3¶ÔÀàµÄ¼Ì³Ð¹ØÏµµÄ¶¨Òå
ÃæÏò¶ÔÏóµÄÉè¼Æ¹Ø×¢µÄÊǶÔÏóµÄÐÐΪ£¬ËüÊÇʹÓá°ÐÐΪ¡±À´¶Ô¶ÔÏó½øÐзÖÀàµÄ£¬Ö»ÓÐÐÐΪһÖµĶÔÏó²ÅÄܳéÏó³öÒ»¸öÀàÀ´¡£
ÎÒÃÇ˵ÀàµÄ¼Ì³Ð¹ØÏµ¾ÍÊÇÒ»ÖÖ¡°is-a¡±¹ØÏµ£¬Êµ¼ÊÉÏÖ¸µÄÊÇÐÐΪÉϵġ°is-a¡±¹ØÏµ£¬¿ÉÒÔ°ÑËüÃèÊöΪ¡°±íÏÖΪ£¬act
as¡±¡£
Õý·½ÐÎÔÚÉèÖó¤¶ÈºÍ¿í¶ÈÕâÁ½¸öÐÐΪÉÏ£¬Ó볤·½ÐÎÏÔÈ»ÊDz»Í¬µÄ¡£³¤·½ÐεÄÐÐΪ£ºÉèÖó¤·½Ðεij¤¶ÈµÄʱºò£¬ËüµÄ¿í¶È±£³Ö²»±ä£¬ÉèÖÿí¶ÈµÄʱºò£¬³¤¶È±£³Ö²»±ä¡£Õý·½ÐεÄÐÐΪ£ºÉèÖÃÕý·½Ðεij¤¶ÈµÄʱºò£¬¿í¶ÈËæÖ®¸Ä±ä£»ÉèÖÿí¶ÈµÄʱºò£¬³¤¶ÈËæÖ®¸Ä±ä¡£ËùÒÔ£¬Èç¹ûÎÒÃǰÑÕâÖÖÐÐΪ¼Óµ½¸¸À೤·½ÐεÄʱºò£¬¾Íµ¼ÖÂÁËÕý·½ÐÎÎÞ·¨¼Ì³ÐÕâÖÖÐÐΪ¡£ÎÒÃÇ¡°Ç¿ÐС±°ÑÕý·½Ðδӳ¤·½Ðμ̳йýÀ´£¬¾ÍÔì³ÉÎÞ·¨´ïµ½Ô¤ÆÚµÄ½á¹û¡£
3.4Éè¼ÆÒªÒÀÀµÓÚÓû§ÐèÇóºÍ¾ßÌå»·¾³¡£
¼Ì³Ð¹ØÏµÒªÇó×ÓÀàÒª¾ßÓлùÀàÈ«²¿µÄÐÐΪ¡£ÕâÀïµÄÐÐΪÊÇÖ¸ÂäÔÚÐèÇó·¶Î§ÄÚµÄÐÐΪ¡£
ÕâÀïÎÒÃÇÒÔÁíÒ»¸öÀí½âÀïÊÏÌæ»»ÔÔòµÄ¾µäÀý×Ó¡°ÍÒÄñ·ÇÄñ¡±À´×öʾÀý¡£ÉúÎïѧÖжÔÓÚÄñÀàµÄ¶¨ÒåÊÇ¡°ºãζ¯ÎÂÑÉú£¬È«ÉíÅûÓÐÓð룬ÉíÌå³ÊÁ÷ÏßÐΣ¬ÓнÇÖʵÄ๣¬ÑÛÔÚÍ·µÄÁ½²à¡£Ç°Ö«ÍË»¯³ÉÒí£¬ºóÖ«ÓÐÁÛ×´ÍâÆ¤£¬ÓÐËÄÖº¡±¡£´ÓÉúÎïѧ½Ç¶ÈÀ´¿´£¬ÍÒÄñ¿Ï¶¨ÊÇÒ»ÖÖÄñ£¬ÊÇÒ»Öּ̳йØÏµ¡£µ«ÊǸù¾ÝÉÏÒ»¸ö¡°Õý·½Ðηdz¤·½ÐΡ±µÄÀý×Ó£¬ÍÒÄñºÍÄñÖ®¼äµÄ¼Ì³Ð¹ØÏµÓÖ¿ÉÄܲ»³ÉÁ¢¡£ÄÇô£¬ÍÒÄñºÍÄñÖ®¼äµ½µ×ÊDz»ÊǼ̳йØÏµÈçºÎÅжÏÄØ£¿ÕâÐèÒª¸ù¾ÝÓû§ÐèÇóÀ´Åжϡ£
ÏÖÔÚÄñÀàÓÐËĸö¶ÔÍâµÄÐÐΪ£¬ÆäÖÐÁ½¸öÐÐΪ·Ö±ðÂäÔÚAºÍBϵͳÐèÇóÖУ¬ÈçÏÂͼËùʾ¡£

AÐèÇóÆÚÍûÄñÀàÌṩÓë·ÉÏèÓйصÄÐÐΪ£¬¼´Ê¹ÍÒÄñ¸úÆÕͨµÄÄñÔÚÍâ¹ÛÉϾÍÊÇ100%µÄÏàÏñ£¬µ«ÔÚAÐèÇó·¶Î§ÄÚ£¬ÍÒÄñÔÚ·ÉÏèÕâÒ»µãÉϸúÆäËüÆÕͨµÄÄñÊDz»Ò»Öµģ¬ËüûÓÐÕâ¸öÄÜÁ¦£¬ËùÒÔ£¬ÍÒÄñÀàÎÞ·¨´ÓÄñÀàÅÉÉú£¬ÍÒÄñ²»ÊÇÄñ¡£
BÐèÇóÆÚÍûÄñÀàÌṩÓëÓðëÓйصÄÐÐΪ£¬ÄÇôÍÒÄñÔÚÕâÒ»µãÉϸúÆäËüÆÕͨµÄÄñÒ»Öµġ£ËäÈ»Ëü²»»á·É£¬µ«ÊÇÕâÒ»µã²»ÔÚBÐèÇó·¶Î§ÄÚ£¬ËùÒÔ£¬Ëü¾ß±¸ÁËÄñÀàÈ«²¿µÄÐÐÎªÌØÕ÷£¬ÍÒÄñÀà¾ÍÄܹ»´ÓÄñÀàÅÉÉú£¬ÍÒÄñ¾ÍÊÇÄñ¡£
ËùÓÐ×ÓÀàµÄÐÐΪ¹¦ÄܱØÐëºÍʹÓÃÕß¶ÔÆä¸¸ÀàµÄÆÚÍû±£³ÖÒ»Ö£¬Èç¹û×ÓÀà´ï²»µ½ÕâÒ»µã£¬ÄÇô±ØÈ»Î¥·´ÀïÊÏÌæ»»ÔÔò¡£
4¡¢ÒÀÀµµ¹×ªÔÔò
ÒÀÀµµ¹×ªÔÔò£¨Dependency Inversion Principle£¬¼ò³ÆDIP£©ÊÇÖ¸½«Á½¸öÄ£¿éÖ®¼äµÄÒÀÀµ¹ØÏµµ¹ÖÃΪÒÀÀµ³éÏóÀà»ò½Ó¿Ú¡£¾ßÌåÓÐÁ½²ãº¬Ò壺
4.1¸ß²ãÄ£¿é²»Ó¦¸ÃÒÀÀµÓڵͲãÄ£¿é£¬¶þÕß¶¼Ó¦¸ÃÒÀÀµÓÚ³éÏó
4.2 ³éÏó²»Ó¦¸ÃÒÀÀµÓÚϸ½Ú£¬Ï¸½ÚÓ¦¸ÃÒÀÀµÓÚ³éÏó
¾ßÌåñîºÏ¹ØÏµ£º·¢ÉúÔÚÁ½¸ö¾ßÌåµÄ£¨¿ÉʵÀý»¯µÄ£©ÀàÖ®¼ä£¬¾ÓÉÒ»¸öÀà¶ÔÁíÒ»¸ö¾ßÌåÀàµÄÖ±½ÓÒýÓÃÔì³É¡£
³éÏóñîºÏ¹ØÏµ£º·¢ÉúÔÚÒ»¸ö¾ßÌåÀàºÍÒ»¸ö³éÏóÀࣨ»ò½Ó¿Ú£©Ö®¼ä£¬Ê¹Á½¸ö±ØÐë·¢Éú¹ØÏµµÄÀàÖ®¼ä´æÓÐ×î´óµÄÁé»îÐÔ¡£
ÃæÏò½Ó¿Ú±à³Ì£º
Ôڸ߲ãÄ£¿éºÍµÍ²ãÄ£¿éÖ®¼ä¶¨ÒåÒ»¸ö³éÏó½Ó¿Ú£¬¸ß²ãÄ£¿éµ÷ÓóéÏó½Ó¿Ú¶¨ÒåµÄ·½·¨£¬µÍ²ãÄ£¿éʵÏָýӿڡ£
ÒÀÀµµ¹×ªÔÔòµÄ±¾ÖʾÍÊÇÒªÇó½«ÀàÖ®¼äµÄ¹ØÏµ½¨Á¢ÔÚ³éÏó½Ó¿ÚµÄ»ù´¡Éϵġ£Í¨¹ýÉÏÃæµÄ·½Ê½£¬½«´íÎóµÄÒÀÀµ¹ØÏµµ¹×ª¹ýÀ´£¬Ê¹¾ßÌåʵÏÖÀàÒÀÀµÓÚ³éÏóÀàºÍ½Ó¿Ú¡£Õâ¾ÍÊÇÒÀÀµµ¹×ªÔÔòÖС°µ¹×ª¡±µÄÓÉÀ´¡£
ÒÔ³éÏó·½Ê½ñîºÏÊÇÒÀÀµµ¹×ªÔÔòµÄ¹Ø¼ü¡£
5¡¢×éºÏ/¾ÛºÏ¸´ÓÃÔÔò
×éºÏ/¾ÛºÏ¸´ÓÃÔÔò£¨Composite/Aggregation Reuse Principle£¬CARP£©ÊÇÖ¸Òª¾¡Á¿Ê¹ÓÃ×éºÏ/¾ÛºÏ¶ø·Ç¼Ì³ÐÀ´´ïµ½¸´ÓÃÄ¿µÄ¡£ÁíÒ»ÖÖ½âÊÍÊÇÔÚÒ»¸öеĶÔÏóÖÐʹÓÃһЩÒÑÓеĶÔÏó£¬Ê¹Ö®³ÉΪжÔÏóµÄÒ»²¿·Ö£»ÐµĶÔÏóͨ¹ýÏòÕâЩ¶ÔÏóίÍй¦ÄÜ´ïµ½¸´ÓÃÕâЩ¶ÔÏóµÄÄ¿µÄ¡£
5.1×éºÏ/¾ÛºÏ¸´ÓÃ
ÎÒÃÇÖªµÀ×éºÏ/¾ÛºÏ¶¼ÊǹØÁª¹ØÏµµÄÌØÊâÖÖÀ࣬¶þÕß¶¼ÊÇÌåÏÖÕûÌåÓ벿·ÖµÄ¹ØÏµ£¬Ò²¾ÍÊÇÁ½¸öÀàÖ®¼äµÄÊÇ¡°has-a¡±¹ØÏµ£¬Ëü±íʾijһ¸ö½ÇÉ«¾ßÓÐijһÏîÔðÈΡ£ÓÉÓÚ×éºÏ/¾ÛºÏ¶¼¿ÉÒÔ½«ÒÑÓеĶÔÏó¼ÓÈ뵽жÔÏóÖУ¬Ê¹Ö®³ÉΪжÔÏóµÄÒ»²¿·Ö£¬Òò´ËжÔÏó¿ÉÒÔµ÷ÓÃÒÑÓжÔÏóµÄ¹¦ÄÜ£¬´Ó¶øÊµÏÖ¶ÔÏó¸´Óá£
ʹÓÃ×éºÏ/¾ÛºÏʵÏÖ¸´ÓÃÓÐÈçϺô¦£º
5.1.1жÔÏó´æÈ¡³É·Ö¶ÔÏóµÄΨһ·½·¨ÊÇͨ¹ý³É·Ö¶ÔÏóµÄ½Ó¿Ú¡£
5.1.2ÕâÖÖ¸´ÓÃÊǺÚÏ临Óã¬ÒòΪ³É·Ö¶ÔÏóµÄÄÚ²¿Ï¸½ÚÊÇжÔÏóËù¿´²»¼ûµÄ¡£
5.1.3ÕâÖÖ¸´ÓÃËùÐèµÄÒÀÀµ½ÏÉÙ¡£
5.1.4ÿһ¸öеÄÀà¿ÉÒÔ½«½¹µã¼¯ÖÐÔÚÒ»¸öÈÎÎñÉÏ¡£
5.1.5ÕâÖÖ¸´ÓÿÉÒÔÔÚÔËÐÐʱ¼äÄÚ¶¯Ì¬½øÐУ¬×÷ΪÕûÌåµÄжÔÏó¿ÉÒÔ¶¯Ì¬µØÒýÓÃÓ벿·Ö¶ÔÏóÀàÐÍÏàͬµÄ¶ÔÏó¡£Ò²¾ÍÊÇ˵£¬×éºÏ/¾ÛºÏÊǶ¯Ì¬ÐÐΪ£¬¼´ÔËÐÐʱÐÐΪ¡£¿ÉÒÔͨ¹ýʹÓÃ×éºÏ/¾ÛºÏµÄ·½Ê½ÔÚÉè¼ÆÉÏ»ñµÃ¸ü¸ßµÄÁé»îÐÔ¡£
µ±È»£¬ÕâÖÖ¸´ÓÃÒ²ÓÐȱµã¡£ÆäÖÐ×îÖ÷ÒªµÄȱµã¾ÍÊÇϵͳÖлáÓн϶àµÄ¶ÔÏóÐèÒª¹ÜÀí¡£
Ò»°ãÀ´Ëµ£¬Èç¹ûÒ»¸ö½ÇÉ«µÃµ½Á˸ü¶àµÄÔðÈΣ¬¾Í¿ÉÒÔʹÓÃ×éºÏ/¾ÛºÏ¹ØÏµ½«ÐµÄÔðÈÎίÅɵ½ºÏÊʵĶÔÏóÉÏ¡£
5.2¼Ì³Ð¸´ÓÃ
¼Ì³ÐÊÇÃæÏò¶ÔÏóÓïÑÔÌØÓеĸ´Óù¤¾ß¡£ÓÉÓÚʹÓü̳йØÏµÊ±£¬ÐµÄʵÏÖ½ÏΪÈÝÒ×£¬Òò¸¸ÀàµÄ´ó²¿·Ö¹¦ÄÜ¿ÉÒÔͨ¹ý¼Ì³ÐµÄ¹ØÏµ×Ô¶¯½øÈë×ÓÀࣻͬʱ£¬Ð޸ĺÍÀ©Õ¹¼Ì³Ð¶øÀ´µÄʵÏÖ½ÏΪÈÝÒס£ÓÚÊÇ£¬ÔÚÃæÏò¶ÔÏóÉè¼ÆÀíÂÛµÄÔçÆÚ£¬³ÌÐòÉè¼ÆÊ¦Ê®·ÖÈÈÖÔÓڼ̳У¬ºÃÏñ¼Ì³Ð¾ÍÊÇ×îºÃµÄ¸´ÓÃÊֶΣ¬ÓÚÊǼ̳ÐÒ²³ÉΪÁË×îÈÝÒ×±»ÀÄÓõĸ´Óù¤¾ß¡£È»¶ø£¬¼Ì³ÐÓжà¸öȱµã£º
5.2.1¼Ì³Ð¸´ÓÃÆÆ»µ·â×°£¬ÒòΪ¼Ì³Ð½«¸¸ÀàµÄʵÏÖϸ½Ú±©Â¶¸ø×ÓÀà¡£ÓÉÓÚ¸¸ÀàµÄÄÚ²¿Ï¸½Ú³£³£ÊǶÔÓÚ×ÓÀà͸Ã÷µÄ£¬ËùÒÔÕâÖÖ¸´ÓÃÊÇ͸Ã÷µÄ¸´Óã¬Óֳơ°°×Ï䡱¸´Óá£
5.2.2Èç¹û¸¸Àà·¢Éú¸Ä±ä£¬ÄÇô×ÓÀàµÄʵÏÖÒ²²»µÃ²»·¢Éú¸Ä±ä¡£
5.2.3´Ó¸¸Àà¼Ì³Ð¶øÀ´µÄʵÏÖÊǾ²Ì¬µÄ£¬Ò²¾ÍÊDZàÒëʱÐÐΪ£¬²»¿ÉÄÜÔÚÔËÐÐʱ¼äÄÚ·¢Éú¸Ä±ä£¬Ã»ÓÐ×ã¹»µÄÁé»îÐÔ¡£
ÕýÊÇÒòΪ¼Ì³ÐÓÐÉÏÊöȱµã£¬ËùÒÔÓ¦Ê×ÏÈʹÓÃ×éºÏ/¾ÛºÏ£¬Æä´Î²Å¿¼ÂǼ̳У¬´ïµ½¸´ÓõÄÄ¿µÄ¡£²¢ÇÒÔÚʹÓü̳Ðʱ£¬ÒªÑϸñ×ñÑÀïÊÏÌæ»»ÔÔò¡£
ÒªÕýÈ·µÄÑ¡Ôñ×éºÏ/¾ÛºÏºÍ¼Ì³Ð£¬±ØÐë͸³¹µÄÀí½âÀïÊÏÌæ»»ÔÔòºÍCoad·¨Ôò¡£ÀïÊÏÌæ»»ÔÔòÇ°ÃæÑ§Ï°¹ý£¬Coad·¨ÔòÓÉPeter
CoadÌá³ö£¬×ܽáÁËһЩʲôʱºòʹÓü̳Ð×÷Ϊ¸´Óù¤¾ßµÄÌõ¼þ¡£
5.3CoadÌõ¼þÈ«²¿±»Âú×ãʱ£¬²ÅÓ¦µ±Ê¹Óü̳йØÏµ
5.3.1×ÓÀàÊǸ¸ÀàµÄÒ»¸öÌØÊâÖÖÀ࣬¶ø²»ÊǸ¸ÀàµÄÒ»¸ö½ÇÉ«£¬Ò²¾ÍÊÇÇø·Ö¡°has-a¡±ºÍ¡°is-a¡±¡£Ö»ÓС°is-a¡±¹ØÏµ²Å·ûºÏ¼Ì³Ð¹ØÏµ£¬¡°has-a¡±¹ØÏµÓ¦µ±ÓÃ×éºÏ/¾ÛºÏÀ´ÃèÊö¡£
5.3.2ÓÀÔ¶²»»á³öÏÖÐèÒª½«×ÓÀà»»³ÉÁíÍâÒ»¸öÀàµÄ×ÓÀàµÄÇé¿ö¡£Èç¹û²»Äܿ϶¨½«À´ÊÇ·ñ»á±ä³ÉÁíÍâÒ»¸ö×ÓÀàµÄ»°£¬¾Í²»ÒªÊ¹Óü̳С£
5.3.3×ÓÀà¾ßÓÐÀ©Õ¹¸¸ÀàµÄÔðÈΣ¬¶ø²»ÊǾßÓÐÖû»£¨ÖØÐ´£©»ò×¢Ïúµô¸¸ÀàµÄÔðÈΡ£Èç¹ûÒ»¸ö×ÓÀàÐèÒª´óÁ¿µÄÖû»µô¸¸ÀàµÄÐÐΪ£¬ÄÇôÕâ¸öÀà¾Í²»Ó¦¸ÃÊÇÕâ¸ö¸¸ÀàµÄ×ÓÀà¡£
5.3.4Ö»ÓÐÔÚ·ÖÀàѧ½Ç¶ÈÉÏÓÐÒâÒåʱ£¬²Å¿ÉÒÔʹÓü̳С£²»Òª´Ó¹¤¾ßÀà¼Ì³Ð¡£
6¡¢½Ó¿Ú¸ôÀëÔÔò
½Ó¿Ú¸ôÀëÔÔò£¨Interface Segregation Principle£¬¼ò³ÆISP£©ÊÇÖ¸¿Í»§²»Ó¦¸ÃÒÀÀµËüÃÇÓò»µ½µÄ·½·¨£¬Ö»¸øÃ¿¸ö¿Í»§ËüËùÐèÒªµÄ½Ó¿Ú¡£»»¾ä»°Ëµ£¬¾ÍÊDz»ÄÜÇ¿ÆÈÓû§È¥ÒÀÀµÄÇЩËûÃDz»Ê¹ÓõĽӿڡ£
½Ó¿Ú¸ôÀëÔÔòʵ¼ÊÉϰüº¬ÁËÁ½²ãÒâ˼£º
6.1½Ó¿ÚµÄÉè¼ÆÔÔò
½Ó¿ÚµÄÉè¼ÆÓ¦¸Ã×ñÑ×îС½Ó¿ÚÔÔò£¬²»Òª°ÑÓû§²»Ê¹Óõķ½·¨Èû½øÍ¬Ò»¸ö½Ó¿ÚÀï¡£Èç¹ûÒ»¸ö½Ó¿ÚµÄ·½·¨Ã»Óб»Ê¹Óõ½£¬Ôò˵Ã÷¸Ã½Ó¿Ú¹ýÅÖ£¬Ó¦¸Ã½«Æä·Ö¸î³É¼¸¸ö¹¦ÄÜרһµÄ½Ó¿Ú£¬Ê¹Óöà¸öרÃŵĽӿڱÈʹÓõ¥Ò»µÄ×ܽӿÚÒªºÃ¡£
6.2½Ó¿ÚµÄ¼Ì³ÐÔÔò
Èç¹ûÒ»¸ö½Ó¿ÚA¼Ì³ÐÁíÒ»¸ö½Ó¿ÚB£¬Ôò½Ó¿ÚAÏ൱Óڼ̳ÐÁ˽ӿÚBµÄ·½·¨£¬ÄÇô¼Ì³ÐÁ˽ӿÚBºóµÄ½Ó¿ÚAÒ²Ó¦¸Ã×ñÑÉÏÊöÔÔò£º²»Ó¦¸Ã°üº¬Óû§²»Ê¹Óõķ½·¨¡£·´Ö®£¬Ôò˵Ã÷½Ó¿ÚA±»B¸øÎÛȾÁË£¬Ó¦¸ÃÖØÐÂÉè¼ÆËüÃǵĹØÏµ¡£
6.3ͨ¹ý¶àÖØ¼Ì³Ð·ÖÀë½Ó¿Ú
¶àÖØ¼Ì³Ð¿ÉÒÔÓÐÁ½¸ö·½Ê½£¬µÚÒ»ÖÖ·½Ê½ÊÇͬʱʵÏÖÁ½¸ö½Ó¿Ú£¬ÊôÓÚ¶àÖØ½Ó¿Ú¼Ì³Ð£»µÚ¶þÖÖ·½Ê½ÊÇʵÏÖÒ»¸ö½Ó¿Ú£¬Í¬Ê±¼Ì³ÐÒ»¸ö¾ßÌåÀ࣬ʵ¼ÊÉÏÒ²ÊÇÒ»ÖÖ¶àÖØ¼Ì³Ð¡£
6.4ͨ¹ýίÍзÖÀë½Ó¿Ú
ʹÓþۺϺÍ×éºÏÀ´½«²¿·ÖʵÏÖ½»¸øÒÑÖªÀàʵÏÖ¡£×Ô¼ºÔÚʵÏÖ²¿·Ö½Ó¿Ú¡£
7¡¢µÏÃ×ÌØ·¨Ôò
µÏÃ×ÌØ·¨Ôò£¨Law of Demeter£¬¼ò³ÆLOD£©£¬ÓÖ³ÆÎª¡°×îÉÙ֪ʶÔÔò¡±£¬ËüµÄ¶¨ÒåΪ£ºÒ»¸öÈí¼þʵÌåÓ¦µ±¾¡¿ÉÄÜÉÙµÄÓëÆäËûʵÌå·¢ÉúÏ໥×÷Óá£ÕâÑù£¬µ±Ò»¸öÄ£¿éÐÞ¸Äʱ£¬¾Í»á¾¡Á¿ÉÙµÄÓ°ÏìÆäËûµÄÄ£¿é£¬À©Õ¹»áÏà¶ÔÈÝÒס£µÏÃ×ÌØ·¨ÔòÊǶÔÈí¼þʵÌåÖ®¼äͨÐŵÄÏÞÖÆ£¬Ëü¶ÔÈí¼þʵÌåÖ®¼äͨÐŵĿí¶ÈºÍÉî¶È×ö³öÁËÒªÇó¡£µÏÃ×ÌØµÄÆäËü±íÊö·½Ê½Îª£º
7.1Ö»ÓëÄãÖ±½ÓµÄÅóÓÑÃÇͨÐÅ¡£
7.2²»Òª¸ú¡°Ä°ÉúÈË¡±Ëµ»°¡£
7.3ÿһ¸öÈí¼þµ¥Î»¶ÔÆäËûµÄµ¥Î»¶¼Ö»ÓÐ×îÉÙµÄ֪ʶ£¬¶øÇÒ¾ÖÏÞÓÚÄÇЩÓë±¾µ¥Î»ÃÜÇÐÏà¹ØµÄÈí¼þµ¥Î»¡£
7.4×öΪ¡°ÅóÓÑ¡±µÄÌõ¼þΪ£º
7.4.1µ±Ç°¶ÔÏó±¾Éí£¨this£©£»
7.4.2±»µ±×öµ±Ç°¶ÔÏóµÄ·½·¨µÄ²ÎÊý´«Èë½øÀ´µÄ¶ÔÏó£»
7.4.3µ±Ç°¶ÔÏóµÄ·½·¨Ëù´´½¨»òÕßʵÀý»¯µÄÈκζÔÏó£»
7.4.4µ±Ç°¶ÔÏóµÄÈκÎ×é¼þ£¨±»µ±Ç°¶ÔÏóµÄʵÀý±äÁ¿ÒýÓõÄÈκζÔÏ󣩡£
|