使用观察者模式实现Java应用程序设计MVC模式

本文探讨了MVC设计模式在软件架构中的重要性,强调了观察者模式在实现MVC动态绑定中的关键作用。通过示例代码展示了如何在Java中使用观察者模式,包括JButton事件监听和自定义JLabel组件的实现,进一步解释了这种模式如何增强模块的可重用性和实现IoC(控制反转)的概念。
摘要由CSDN通过智能技术生成
  href="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_filelist.xml" rel="File-List" />


         MVC设计模式并不是实际所谓的编程模式,而是设计软件总体框架使用到的设计模式,是针对不同作用代码组织成一个完整的应用程序所给出的优秀的组织方案。它是将显示界面的代码放于一处,将控制逻辑放于一处,最后将对视图的操作与所进行的控制逻辑绑定在一起,显然观察者模式对于实现这一动态的绑定作用重大。

        绑定一词可以在Java中的很多地方找到,例如下面的代码用到的是动态绑定机制:

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import javax.swing.JButton;

import javax.swing.JFrame;

import java.awt.Container;

 

public class Test extends JFrame{

JButton button=new JButton(“Test”);

 

public Test(){

 

Container con=this.getContentPane();

con.add(button);

ActionListener listener=new Handler(button);

button.addActionListener(listener);

 

this.setSize(400,300);

this/setVisible(true);

this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE();

 

}

}

Public static void main(String[] args){

New Test();

}

}

class Handler implements ActionListener{

JComponent button;

   public Handler(JComponent button){

this.button=button;

 

 

}

 

ActionListener listener=new ActionListener(){

Public void actionPerformed(ActionEvent e){

button.setText(“ Good bye”);

 

}

这里的 ActionListener listener=new Handler(button);

就是动态绑定的典型例子。

 

 

又如JNDI将名字与对象映射在一起也是绑定的表现形式。MVC模式与观察着模式关系密切,现在看一看另一个例子,将JLabel改造为JButton,其中可以看到Java DEM模型的观察者模式的实现方法:

/*

 * JTag.java

 *

 * Created on 20071118, 下午7:08

 *

 * To change this template, choose Tools | Template Manager

 * and open the template in the editor.

 */

 

package org.miao513;

import javax.swing.JLabel;

import java.awt.event.MouseListener;

import java.awt.event.MouseEvent;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值