新疆软件开发

本站首页 软件开发 成功案例 公司新闻 公司简介 客服中心 软件技术 网站建设
  您现在的位置: 新疆二域软件开发公司 >> Java技术 >> 文章正文

Java单子模式如何应用

前不久在被问到一个问题,有关Java的界面的编程,当点击一个按钮时,要产生一个窗体,但是每点一次都会产生一个,由此想到了Java的设计模式之单子模式,利用单子模式很好的解决了这个问题.
单子模式就是一个类只能产生一个实例.代码如下:
package test;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.*;
import javax.swing.JLabel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//单子模式类
public class SingletonDemo extends JFrame {
  //一个私有的,静态的本类对象
    private static SingletonDemo testFrame=new SingletonDemo();
    JLabel jLMes = new JLabel();
   //构造必须是私有的,这样其它的类才不能访问
    private SingletonDemo() {
        getContentPane().setLayout(null);     
        this.getContentPane().add(jLMes);
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        jLMes.setText("这是产生的唯一窗体");
        jLMes.setBounds(new Rectangle(103, 53, 230, 96));      
    }
// 公有的静态方法返回一个本类对象
    public static synchronized SingletonDemo getInstance()    {
        return testFrame;
    }
}
//测试类

class Test extends JFrame {
   
     JButton jBFrame = new JButton(); 
     public Test() {
        getContentPane().setLayout(null);
        jBFrame.setBounds(new Rectangle(125, 182, 118, 43));
        jBFrame.setText("单击产生唯一窗体");
       
  this.jBFrame.addActionListener(new MyActionListener());
   this.getContentPane().add(jBFrame);
         this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        this.setSize(300,200);
        this.setVisible(true);
    }

    public static void main(String[] args) {
Test test = new Test();
    }
    
    class MyActionListener implements ActionListener {

      //单击按钮时调用单子模式类的静态方法,获得一个对象
        public void actionPerformed(ActionEvent e) { 
            SingletonDemo testFrame=SingletonDemo.getInstance() ;
            testFrame.setSize(300,200);     
            testFrame.setVisible(true);            
 
        }
    }
}
创建一个单子类必须满足以下三个条件:
1.构造器私有
2.提供一个私有静态变量引用实例   
3.提供一个共有,静态方法获得实例.

作者:未知 | 文章来源:未知 | 更新时间:2007-12-12 17:30:18

  • 上一篇文章:

  • 下一篇文章:

  • 相关文章:
    JAVA开发的6个实践的例子
    JAVA中的抽象类型的一些概念
    java语言开发程序中的几个例子大家看看
    了解java开发语言在软件开发中的几个误区
    如何才能使用Java实现内部领域的特定语言
    Java开发学习小心使用Date以及Time类
    sun最近修补了一部分java的安全补丁
    Java程序员应该了解那些开源协议
    java性能优化的一些见解
    解析c#语言和java语言最相似的地方
    软件技术
    · 开发语言
    · Java技术
    · .Net技术
    · 数据库开发
    最新文章  
    ·j2se 嵌入式脚本抓取引擎
    ·JAVA开发的6个实践的例子
    ·JBuilder7 / Weblogic7开发
    ·JAVA中的抽象类型的一些概
    ·java语言开发程序中的几个
    ·了解java开发语言在软件开
    ·如何才能使用Java实现内部
    ·Java开发学习小心使用Date
    ·Java程序员应该了解那些开
    ·java性能优化的一些见解
    ·介绍JDK5.0一些collection
    ·基础学习:java中使用存储
    ·解析c#语言和java语言最相
    ·Java语言学习:jAVA中 的多
    ·Java是不是应该增加新特性
    关于我们 | 软件开发 | 下载试用 | 客服中心 | 联系我们 | 友情链接 | 网站地图 | 新疆电子地图 | RSS订阅
    版权所有 © 2016 新疆二域软件开发网 www.k8w.net All Rights Reserved 新ICP备14003571号
    新疆软件开发总机:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆乌鲁木齐北京中路华联大厦A-5C 邮编:830000