可扩展的Java应用程序开发模式

现在很多JAVA书籍,在介绍SWING的事件模型时,为了使JAVA初学者容易理解和上手,通常是在主类(自己的JFrame子类或JPanel)中做所有事情:要么由主类作为监听器,在接口的方法中通过判定事件源来决定具体做何事;要么在主类中使用内隐类来实现监听器,(因为内隐类可以方便的访问主类中的成员变量)。而很多JAVA初学者在往后的编程中也采用这种模式(至少我以前是这样的)。其实,这种做法虽然简单,却缺乏可读性、可扩展性和可维护性。之前我看到了一篇关于这个问题的文章(来自于《JavaPro》),现整理出来与大家分享。

下面我将用一个简单的例子来说明如何使用模式来解决这个问题。

现在,假设我们要编写一个使用几个单选按钮从一个长列表中选择不同分组的程序,就象下图中看到的。单击Female单选按钮时,只有女孩的名字被显示;当你点击Male按钮时,程序显示男孩的名字。

开发模式-chrome扩展及应用开发">

这个程序最简单的版本是在主类中做每件事情,主类包含一些持有孩子姓名的数组和向量(Vector),一个另一个最简单的方法是为每个孩子创建一个对象,每个对象有一个象isFemal()这样的方法来帮助我们确定要显示的是男的还是女的。在程序中我们把每个孩子的类称为Swimmer:

public class Swimmer{
  private String name;
  private int age;
  private String club;
  private boolean female;
  public Swimmer(String name,int age,String club,boolean female){
   this.name=name;
   this.age=age;
   this.club=club;
   this.female=female;
  }
  public boolean isFemale(){
   return female;
  }
  public String getName(){
   return name;
  }
  public int getAge(){
   return age;
  }
  public String getClub(){
   return club;
  }
}

时间: 2024-12-02 14:22:23

可扩展的Java应用程序开发模式的相关文章

java程序 不能运行-JAVA小程序开发中遇到一个问题

问题描述 JAVA小程序开发中遇到一个问题 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at Studentguanli.actionPerformed(Studentguanli.java:111) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$

CIO关注:Java B/S开发模式漫谈

B/S 作为如今最为流行的体系结构模式,也是受到了广大http://www.aliyun.com/zixun/aggregation/7155.html">开发人员以及客户的认同,其开发模式也在不断的发展着,在这里主要就 Java B/S 的开发模式做一番回顾和探讨,也算是自己对于 Java B/S 开发模式的一种总结. Jsp+Jdbc 在 B/S 开发中最简单的一种开发模式是页面 + 逻辑处理,映射到技术上反应出来的有 Jsp+Jdbc ,在基于这类的实现中在 View 层也就是 js

java应用程序开发

问题描述 最近想学习下java应用程序的编程(非web类),请问有比较好的源码论坛不,谢谢 解决方案 http://www.verycd.com/topics/2763223/自己下视频看解决方案二:http://docs.oracle.com/javase/tutorial/uiswing/index.html这个swing的学习例子.解决方案三: 解决方案四:http://liuqing-2010-07.iteye.com/blog/994858你可以去我的博客中看看这个例子.解决方案五:h

基于SharpMap扩展程序开发实例

SharpMap是基于.Net平台开发的GIS地图渲染组件.在SharpMap的内部设计了基于OGC 标准的几何模型 构架,设计了IProvider策略模式的多源矢量地图数据适配器接口,地图要素渲染的底层主要通过几何变 换将Geometry转换为.Net支持的几何模型如System.Drawing.Point.System.Drawing.Rectangle. System.Drawing.Drawing2D.GraphicsPath等,然后调用System.Drawing.Graphics类的

通过编程模式起底小程序开发技术特点

从小程序诞生伊始,就有很多人开始研习小程序的机理和特点,从源代码的角度.从整体架构的角度,有很多不错的文章会令人受益. 但理论是一回事,真正理解小程序,还是需要一定的实践,才能进一步去理解小程序背后的一些想法,它和现有平台的一些异同,以及如何去适应它,做出更有趣的小程序. 小程序的编程模式 最近,我们在做「轻芒小程序+」和其它轻芒产品的小程序应用过程中,对小程序有了进一步的理解,进而有了本文. 去理解一个开发平台的特性,一个不错的角度就是从"编程模式"入手,就是看在这个平台上去开发,需

从网页到网络平台 网站开发模式改变

网络|网页 网络工作的方式正在发生改变. 10年之前,网络的出现给任何拥有互联网连接的人开启了一扇通向海量信息的大门.现在,公共网站上使用的智能数据技术正在让信息可以满足用户的特定需求. 能够让人们寻找到便宜汽油的Google地图界面就是这种技术的代表.越来越多的独立开发者正在使用网络巨头提供的工具,开发出越来越多的好玩程序,他们的努力令这些网站的内容越来越丰富. 对于网站所有者们来说,这预示着一个巨大的变革,尤其对于那些想迎接Web 2.0时代的人来说更是如此.分析师认为,和以往仅仅将网络看作

从网页到网络平台 网站开发模式改变

网络|网页 网络工作的方式正在发生改变. 10年之前,网络的出现给任何拥有互联网连接的人开启了一扇通向海量信息的大门.现在,公共网站上使用的智能数据技术正在让信息可以满足用户的特定需求. 能够让人们寻找到便宜汽油的Google地图界面就是这种技术的代表.越来越多的独立开发者正在使用网络巨头提供的工具,开发出越来越多的好玩程序,他们的努力令这些网站的内容越来越丰富. 对于网站所有者们来说,这预示着一个巨大的变革,尤其对于那些想迎接Web 2.0时代的人来说更是如此.分析师认为,和以往仅仅将网络看作

使用IBM Worklight进行服务器端移动应用程序开发(一)

IBM Worklight适配器与Java业务逻辑的集成 简介 IBM Rational Application Developer for WebSphere Software Version 8.5.1 iFix1 方便了 Java.Java Enterprise Edition (JEE).Web 2.0.移动.OSGi.门户和面向服务的架构 (SOA) 业务应用程序的快速开发.测试和操作部署.对于移动应用程序开发,它包含一些处理 HTML 5.CSS3.JavaScript.Dojo 工

使用IBM Worklight进行服务器端移动应用程序开发(一)

IBM Worklight 适配器与 Java 业务逻辑的集成 简介 IBM Rational Application Developer for WebSphere Software Version 8.5.1 iFix1 方 便了 Java.Java Enterprise Edition (JEE).Web 2.0.移动.OSGi.门户和面向服务的架构 (SOA) 业务应 用程序的快速开发.测试和操作部署.对于移动应用程序开发,它包含一些处理 HTML 5.CSS3.JavaScript .