javaÉè¼ÆÄ£Ê½£º×°ÊÎÆ÷ģʽ[Decorator]
×°ÊÎÆ÷ģʽÖ÷ÒªÓ¦ÓÃÓÚÕâÑùÒ»ÖÖ³¡ºÏ£¬µ±ÄãÒѾÓÐÁËÒ»¸öÄ¿±êÀ࣬²¢ÇÒËüÊÇÒ»¸ö½Ó¿ÚµÄʵÏÖÀ࣬ÔÚ¶Ô¸ÃÀàʹÓõĺóÆÚ·¢ÏÖÐèÒª¶ÔÏàÓ¦½Ó¿Ú³ÌÐòµÄǰºó×ö¸ü¶àµÄ´¦Àí£¬ÕâЩ´¦ÀíÊDZ仯µÄ£¬²»¹Ì¶¨µÄ£¬µ«ÊÇÓв»ÄÜÈ¥ÐÞ¸ÄÕâ¸öÄ¿±êÀ࣬ÕâʱÎÒÃǾͿÉÒÔʹÓÃÕâ¸ö×°ÊÎÆ÷ģʽ£º
±ÈÈ磬ÎÒÃÇÒѾÓÐÒ»¸ö¸¶¿îµÄ·½·¨ payMoney(long count) £¬Õâ¸ö·½·¨Ö»¸ºÔð½«Ç®¸¶¸ø¶Ô·½£¬²»×öÆäËû²Ù×÷£¬µ«ÊÇÕâʱÎÒÃÇÐèÒª¼Ç¼ÏÂÕâ¸ö¸¶¿îµÄ²Ù×÷£¬²¢°ÑÕâ¸ö²Ù×÷¼Ç¼µ½ÈÕÖ¾ÎļþÖÐÒÔ·½±ãÈÕºóµÄ²é¿´£¬±ÈÈçÕâ¸ö·½·¨½Ð×ö insertLog(String str) £¬ÓÐÒ»ÖÖ°ì·¨¾ÍÊÇʹÓü̳У¬²¢¸´Ð´ÏàÓ¦µÄ payMoney(long count) ·½·¨£¬ÕâÑùÒ²¿ÉÒÔÂú×ãÌõ¼þ£¬µ«ÊÇÎÊÌâ³öÀ´ÁË£¬Èç¹ûÎÒÃÇÓÖÓÐÆäËûµÄ²Ù×÷£¬ÀýÈç֪ͨ¸¶¿îÈËÒѾ½«¿î¶î¸¶³ö notic(String username) £¬ÕâʱºòÕâô°ì£¬µ±È»ÎÒÃÇÈÔÈ»¿ÉÒÔͨ¹ý¼Ì³ÐÀ´ÊµÏÖ£¬¿ÉÊÇÈç¹ûÎÒÏÖÔÚÓв»Ï뽫¸¶¿î²Ù×÷¼Ç¼µ½ÈÕÖ¾ÎļþÖÐÁË£¬ÄÇÎÒÓÖ¸ÃÕâô°ì£¿
ΪÁ˽â¾öÕâÖÖÎÊÌ⣬ÎÒÃÇʹÓÃÁË ×°ÊÎÆ÷ģʽ £¬ÔÚÎÒÃǵÄÓ¦ÓÃÖпÉÒÔʹÓò»Í¬µÄ×°ÊÎÆ÷ÀࣨÒÔ¼°×°ÊÎÆ÷ÀàµÄ×éºÏ£©À´´ïµ½ÒÔÉϵÄÄ¿µÄ¡£
ÔÙ½«ÎÊÌâ¼ò»¯£¬ÎÒÃÇÒªÔÚ¿ØÖÆÌ¨Êä³ö×Ö·û£¬µ«ÊÇÐèÒªÔÚ×Ö·ûǰºó¼ÓÉÏ“*”ºÍ“+”£¬Ò²¾ÍÊÇ˵£¬ÎÒ¿ÉÄÜÐèÒªÔÚÎÒÊäÈëµÄ×Ö·ûǰºó¼ÓÉÏ“*”£¬Ò²¿ÉÄܹýÁË»á¶ùÓÖÏë¼Ó“+”¶ø²»ÊÇ“*”£¬»òÕßÓÖÏë“*”ºÍ“+”¶¼¼ÓÉÏ£¬ÓлòÕß¶¼²»Ïë¼Ó¡£
×°ÊÎÆ÷ģʽ ÈÃÕâЩҪÇó¶¯Ì¬µÄÅäÖóöÀ´£¬Ò²¾ÍÊÇ˵ÔÚÔËÐÐʱ²»ÐèÒª¸Ä±äÔÀ´ÒѾÉú³ÉºÃµÄ¶ÔÏó¡£
ÈÃÎÒÃÇÀ´¿´¿´Õâ¸ö½â¾ö·½°¸µÄ ×°ÊÎÆ÷ģʽ µÄÀàͼ°É£º
ÆäÖУ¬MyText ÀàΪÎÒÃÇÒªÏÔʾµÄ×Ö·ûÀ࣬¶ø DecoratorTextConsole ¼°Æä×ÓÀàΪÎÒÃÇµÄ ×°ÊÎÀà ¡£
¾ßÌå´úÂëÈçÏ£º
/**********************************************************************/
package decorator.interfaces;
public interface TextConsole {
public void printWords();
public void readWords();
}
/**********************************************************************/
package decorator.service;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import decorator.interfaces.TextConsole;
public class MyText implements TextConsole {
private String words;
public void printWords() {
System.out.print(words);
}
public void readWords() {
Ïà¹ØÎĵµ£º
ʱ¼ä¶¯Ì¬ÏÔʾ
1.·½·¨Ò» ÓÃTimerTask
ÀûÓÃjava.util.TimerºÍjava.util.TimerTaskÀ´×ö¶¯Ì¬¸üУ¬±Ï¾¹Ã¿´Î¸üпÉÒÔ¿´×÷ÊǼÆÊ±1Ãë·¢ÉúÒ»´Î¡£
´úÂëÈçÏ£º
import java.awt.Dimension;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util ......
¶ÔÓÚѧϰstaticÎÒÃÇÏÈÀ´¿´Á½¸öÀý×Ó£º
//Example 1 Tst.java£¬no main() method
package com.blogchina.qb2049;
public class Tst
{
static { System.out.println("111111"); }
}
ÔËÐнá¹ûΪ: 111111
Exception in thread "main" java.lang.NoSuchMethodError: main
ͬÑùµÄµÀÀí¿´µÚ¶þ ......
1¡¢FACTORY£¨¹¤³§Ä£Ê½£©
2¡¢BUILDER£¨½¨Ôìģʽ£©
3¡¢FACTORY METHOD£¨¹¤³§·½·¨Ä£Ê½£©
4¡¢PROTOTYPE£¨ÔʼģÐÍģʽ£©
5¡¢SINGLETON£¨µ¥Àýģʽ£©
6¡¢ADAPTER£¨ÊÊÅäÆ÷ģʽ£©
7¡¢BRIDGE£¨ÇÅÁºÄ£Ê½£©
8¡¢COMPOSITE£¨ºÏ³Éģʽ£©
9¡¢DECORATOR£¨×°ÊÎģʽ£©
10¡¢FACADE£¨ÃÅÃæÄ£Ê½£©
11¡¢FLYWEIGHT£¨ÏíԪģʽ£© ......
Ê×ÏÈһЩ±»³õʼ»¯¶ÔÏóµÄ¸ÅÄ
Àà±äÁ¿£¨Àྲ̬³ÉÔ±£©£º Àà±»¼ÓÔØÊ±²úÉú£»ËüµÄÉú´æÆÚÊÇÀàµÄÉú´æÆÚ£»×Ô¶¯³õʼ»¯£¨Àà±»¼ÓÔØ£©
³ÉÔ±±äÁ¿£¨Àà³ÉÔ±£©£º ÔÚʹÓÃnew´´½¨¸ÃÀàʵÀýʱ²úÉú£»ËüµÄÉú´æÆÚÓë¸ÃÀàʵÀý¶ÔÏóµÄÉú´æÆÚÏàͬ£»
×Ô¶¯³õʼ»¯£¨¹¹Ôì·½·¨±»µ÷Óã©
¾Ö²¿±äÁ¿£¨ÀàµÄ·½·¨ÖеıäÁ¿£©£º ¸Ã·½·¨±»µ÷ÓÃÊ ......
package org.bupt.test;
import java.util.ArrayList;
class MyResource {
ArrayList<Integer> arrList= new ArrayList<Integer>();
public MyResource(ArrayList<Integer> arrList) {
this.arrList = arrList;
&nbs ......