1.Òâͼ
¸ø¶¨Ò»¸öÓïÑÔ£¬¶¨ÒåËüµÄÎÄ·¨µÄÒ»ÖÖ±íʾ£¬²¢¶¨ÒåÒ»¸ö½âÊÍÆ÷£¬Õâ¸ö½âÊÍÆ÷ʹÓøñíʾÀ´½âÊÍÓïÑÔÖеľä×Ó¡£
2.±ðÃû
ÎÞ
3.¶¯»ú
Èç¹ûÒ»ÖÖÌØ¶¨ÀàÐ͵ÄÎÊÌâ·¢ÉúµÄƵÂÊ×ã¹»¸ß£¬ÄÇô¿ÉÄܾÍÖµµÃ½«¸ÃÎÊÌâµÄ¸÷ÖÖʵÀý±íÊöΪһÖÖ¼òµ¥Óï¾äÖеľä×Ó¡£ÕâÑù¾Í¿ÉÒÔ¹¹½¨Ò»¸ö½âÊÍÆ÷£¬¸Ã½âÊÍÆ÷ͨ¹ý½âÊÍÕâЩ¾ä×ÓÀ´½â¾ö¸ÃÎÊÌâ¡£
4.ÊÊÓÃÐÔ
ÒÔÏÂÇé¿öʹÓÃInterpreterģʽ£º
µ±ÓÐÒ»ÖÖÓïÑÔÐèÒª½âÊÍÖ´ÐУ¬²¢ÇÒÄã¿ÉÒÔ½«¸ÃÓïÑÔÖеľä×Ó±íʾΪһ¸ö³éÏóÓï·¨Ê÷ʱ£¬¿ÉʹÓýâÊÍÆ÷Ä£ÐÍ¡£¶øµ±´æÔÚÒÔÏÂÇé¿öʱ¸ÃģʽЧ¹û×îºÃ¡£
- ¸ÃÎÄ·¨¼òµ¥¶ÔÓÚ¸´ÔÓµÄÎÄ·¨£¬ÎÄ·¨µÄÀà²ã´Î±äµÃÅÓ´ó¶øÎÞ·¨¹ÜÀí¡£´ËʱÓï·¨·ÖÎö³ÌÐòÉú³ÉÆ÷ÕâÑùµÄ¹¤¾ßÊǸüºÃµÄÑ¡Ôñ¡£ËûÃÇÎÞÐè¹¹½¨³éÏóÓï·¨Ê÷¼´¿É½âÊͱí´ïʽ£¬ÕâÑù¿ÉÒÔ½ÚÊ¡¿Õ¼ä¶øÇÒ»¹¿ÉÄܽÚʡʱ¼ä¡£
- ЧÂʲ»ÊÇÒ»¸ö¹Ø¼üÎÊÌ⣬×î¸ßЧµÄ½âÊÍÆ÷ͨ³£²»ÊÇͨ¹ýÖ±½Ó½âÊÍÓï·¨·ÖÎöÊ÷ʵÏֵ쬶øÊÇÊ×ÏȽ«ËûÃÇת»»³ÉÁíÒ»ÖÖÐÎ̬¡£ÀýÈ磬ÕýÔò±í´ïʽͨ³£±»×ª»»³É״̬»ú¡£µ«¼°Ê±ÔÚÕâÖÖÇé¿öÏ£¬×ª»¯Æ÷ÈÔ¿ÉÓýâÊÍÆ÷ģʽʵÏÖ£¬¸ÃģʽÈÔÊÇÓÐÓõġ£
5.½á¹¹
ÊÍÆ÷ģʽÊÇÎÒÃÇÔÝʱµÄ×îºóÒ»½²£¬Ò»°ãÖ÷ÒªÓ¦ÓÃÔÚOOP¿ª·¢ÖеıàÒëÆ÷µÄ¿ª·¢ÖУ¬ËùÒÔÊÊÓÃÃæ±È½ÏÕ¡£

6.´úÂëʾÀý
ʵÏÖ´úÂ룺
ContextÀàÊÇÒ»¸öÉÏÏÂÎÄ»·¾³À࣬PlusºÍMinus·Ö±ðÊÇÓÃÀ´¼ÆËãµÄʵÏÖ£¬´úÂëÈçÏ£º
public interface Expression {
public int interpret(Context context);
}
ʵÏÖÀà
public class Plus implements Expression {
@Override
public int interpret(Context context) {
return context.getNum1()+context.getNum2();
}
}
public class Minus implements Expression {
@Override
public int interpret(Context context) {
return context.getNum1()-context.getNum2();
}
}
ContextÀà
public class Context {
private int num1;
private int num2;
public Context(int num1, int num2) {
this.num1 = num1;
this.num2 = num2;
}
public int getNum1() {
return num1;
}
public void setNum1(int num1) {
this.num1 = num1;
}
public int getNum2() {
return num2;
}
public void setNum2(int num2) {
this.num2 = num2;
}
}
²âÊÔÀࣺ
public class Test {
public static void main(String[] args) {
// ¼ÆËã9+2-8µÄÖµ
int result = new Minus().interpret((new Context(new Plus()
.interpret(new Context(9, 2)), 8)));
System.out.println(result);
}
}
×îºóÊä³öÕýÈ·µÄ½á¹û£º3¡£
»ù±¾¾ÍÕâÑù£¬½âÊÍÆ÷ģʽÓÃÀ´×ö¸÷ÖÖ¸÷ÑùµÄ½âÊÍÆ÷£¬ÈçÕýÔò±í´ïʽµÈµÄ½âÊÍÆ÷µÈµÈ£¡
7.Ïà¹ØÄ£Ê½
Compositeģʽ£º³éÏóÓï·¨Ê÷ÊÇÒ»¸ö¸´ºÏģʽµÄʵÀý¡£ Flyweightģʽ£ºËµÃ÷ÁËÈçºÎÔÚ³éÏóÓï·¨Ê÷Öй²ÏíÖÕ½á·û¡£ Iteratorģʽ£º½âÊÍÆ÷¿ÉÓÃÒ»¸öµü´úÆ÷±éÀú¸Ã½á¹¹¡£ Visitorģʽ£º¿ÉÓÃÀ´ÔÚÒ»¸öÀàÖÐά»¤³éÏóÓï·¨Ê÷Öеĸ÷½ÚµãµÄÐÐΪ¡£
?