科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道再战MVC(-)

再战MVC(-)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

之所以说是再战,是因为在没有学习设计模式之前已经基于MVC体系结构做过一些项目,主要是小项目,当初理解MVC有一些困难。现在已经把Gof所说的相对简单但是最常见的这些设计模式。

作者:gaolin_bei 来源:CSDN 2008年2月27日

关键字: java MVC

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共7页)

注:查看ButtonModel源代码我们可以看到它是一个接口,定义了一组方法:


public interface ButtonModel extends ItemSelectable {


boolean isArmed();


boolean isPressed();



boolean isRollover();


void addActionListener(ActionListener l);


void removeActionListener(ActionListener l);


void addItemListener(ItemListener l);



void removeChangeListener(ChangeListener l);

    其实看到这里,如果你再回头看下这个例子刚开始时“Model的设计”以及前面的内容,就会明白什么是“Mod封装的是数据源和所有基于对这些数据的操作。在一个组件中,Model往往表示组件的状态和操作这些状态的方法,往往是一系列的公开方法。通过这些公开方法,便可以取得模型端的所有功能”

    我们再来看看AbstractButton的源代码:

1.           public abstract class   implements ItemSelectable, SwingConstants { AbstractButton extends JComponent


2.    protected ButtonModel model= null


3.    protected ChangeListener changeListener = null;


4.    protected ActionListener actionListener = null;


5.    protected ItemListener itemListener = null;


6.    protected transient ChangeEvent changeEvent;


7.        public boolean isSelected() {


8.     return model.isSelected();


9.    }


10.public void doClick() {


11.doClick(68);


12.    }


13.public void doClick(int pressTime) {


14. Dimension size = getSize();


15.model.setArmed(true);


16. model.setPressed(true);


17. paintImmediately(new Rectangle(0,0, size.width, size.height));


18.try {


19.Thread.currentThread().sleep(pressTime);


20. } catch(InterruptedException ie) {


21.}


22.model.setPressed(false);


23.model.setArmed(false);


24.}


25.//其它代码


26.}

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章