인 터 페 이 스 를 통 해 연관 성 을 낮추다

2024 단어 자바
더 읽 기
A.B 를 호출 하지만 A 의 내용 을 변경 합 니 다.B 가 바 뀌 지 않 기 를 원한 다 면 인 터 페 이 스 를 만 들 수 있 습 니 다.A,B 1 을 연결 하여 인터페이스 M 2 를 만 들 수 있 습 니 다.A 로 이 인 터 페 이 스 를 실현 합 니 다.3.구조 함 수 를 통 해 인 터 페 이 스 를 B 에 전달 하고 B 에서 인터페이스 방법(또는 대기 열 을 사용 하여 B 에 ADD 방법 을 설정 합 니 다)4.A 에서 B 를 예화 하고 A 를 M 인터페이스 로 B(대기 열:A 를 B 에 추가 합 니 다)로 전달 합 니 다.이렇게 A 를 수정 할 때 B 의 내용 을 수정 하지 않 고 B 에서 사용 하 는 M 방법 은 A 에서 실현 하 는 방법 이다.
//  
public interface MsgListener {
 public void recvMsg(String msg);
}
/**
 *   
 * @author Administrator
 *
 */
public class Time extends Thread{
	//  
	private MsgListener listener;
	//    
    private ArrayList listeners=new ArrayList();
   //          
    
    public void addListener(MsgListener listener){
    	listeners.add(listener);
    }
    public void run(){
    	//  
    	while(true){
    		try {
				sleep(100);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
    		
    	for(int i=0;i 
 
/**
 *    
 * @author zll
 *    ui      ,    time    
 */
public class TimeUI implements MsgListener{
JLabel label;
//    
public void initUI(){
	JFrame jf=new JFrame();
	jf.setDefaultCloseOperation(3);
	jf.setLayout(new FlowLayout());
	jf.setSize(500, 500);
	label=new JLabel();
	jf.add(label);
	jf.setVisible(true);
}

public void recvMsg(String msg) {
	//  msg
 label.setText(msg);
}
public static void main(String[] args){
	TimeUI ui1=new TimeUI();
	ui1.initUI();
	Time time=new Time();
	// time      (ui), time         , ui      
	time.addListener(ui1);
	time.start();
}
}

좋은 웹페이지 즐겨찾기