社区
Java SE
帖子详情
**如何分离Java的界面代码与业务代码**
Jiazi840207
2005-03-25 10:50:04
一般来说,在用Swing写程序时,动作响应的实现一般是用匿名的内部类:
itemNew.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//....
}
});
但如果界面比较复杂时, 都这样写的话会造成界面的类很大,维护起来写不方便.怎么才可以很好地分离界面与业务代码,而又不破坏封装呢?有没有什么例子...
...全文
459
14
打赏
收藏
**如何分离Java的界面代码与业务代码**
一般来说,在用Swing写程序时,动作响应的实现一般是用匿名的内部类: itemNew.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //.... } }); 但如果界面比较复杂时, 都这样写的话会造成界面的类很大,维护起来写不方便.怎么才可以很好地分离界面与业务代码,而又不破坏封装呢?有没有什么例子...
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jiazi840207
2005-03-29
打赏
举报
回复
再顶一下...
Jiazi840207
2005-03-28
打赏
举报
回复
TO superman421(38度的雪) :
还有一点不明白,就是在上例的Mediator类中,如何才能改变界面呢?(如界面中按钮以及TextField的状态等...)...是不是还要在Mediator的构造器中传入Test的引用呢?
fdabobi
2005-03-26
打赏
举报
回复
有几种方法
1.创建扩展监听器接口的一个自定义类,在你的界面代码内使用
MyListener a = new MyListener();
itemNew.addActionListener(a);
这样就分成2个文件了,你可能看上去舒服点,维护也可能容易一些
因为可以拥有自己的构造函数与各种属性,这样的监听器能够处理更复杂的事务
比较适合复杂的事件处理,或者同时为多个组件提供服务的监听器
2.还是一个文件,监听器作为内部类被声明
但是在事件触发时,执行在外部类中定义个一个方法,
因为匿名类是可以调用外部类属性和方法的,如:
public void doAction(){
....处理工作
}
itemNew.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
...若干操作
doAction();
...若干操作
}
});
这样,你只需要注意维护那个doAction就行了
而且你能把多个内部监听类共有的代码分离出来作为一个方法来维护
这样比较适合较小并且事件处理不复杂的程序
apollo333
2005-03-26
打赏
举报
回复
按 fdabobi(小爪尖尖) 的第一种方法就可以
MyListener a = new MyListener();
itemNew.addActionListener(a);
其中
public class MyListener implements ActionListener,MouseListener{
public void mousePressed(MouseEvent e) {
//do something
}
public void actionPerformed(ActionEvent e){
//do something
}
//other methods.......
}
superman421
2005-03-26
打赏
举报
回复
不用那么悬浮的 MVC struts之类的。
问的是图形界面的问题。
用点设计模式就可以了! 看看这个 mediator
public class Mediator implements ActionListener{
protected JFrame gui;
public void actionPerformed(ActionEvent e)
{
...
}
public addToMediator(JFramegui)
{
this.gui = gui;
}
}
/////////////////////////
public class Test extends JFrame
{
Mediator mediator;
JButton button;
public void Test(){
button = new JButton("...");
button.addActionListener(mediator);
}
public static void main(){
...
}
}
给你一个简单的例子。自己动动脑筋改改,同一个界面就可以做不同的事了,只要换一个mediator.
至少这个样子可以让你把界面和功能分开。
leekooqi
2005-03-26
打赏
举报
回复
建议先学习JavaBean,再深入点到EJB,到时候,你就自然知道了!
飞行的兔子
2005-03-26
打赏
举报
回复
struts很简单的,好好看看几天就能理解的很好了!
Jiazi840207
2005-03-26
打赏
举报
回复
可是对STRUCTS了解不多,也没有时间看了...这个复杂吗?
java_jing
2005-03-26
打赏
举报
回复
mvc.struts不错
wandou999
2005-03-26
打赏
举报
回复
如果你试着去用STRUTS,一切问题都解决了
Jiazi840207
2005-03-26
打赏
举报
回复
按apollo333()所说的方法有一个问题,如果要改访问界面代码中的其它元素(如要改变界面中其它组件的状态),就不能声明为private的,是不是破坏了封装了呢?
平淡面对
2005-03-26
打赏
举报
回复
Adapter 模式就很适合。你可以继承相应的Adapter, 写你需要的部分。
飞行的兔子
2005-03-25
打赏
举报
回复
你将这个业务类单独写成一个类,在内部引用就是了,难道一定要写在内部?
Hodex
2005-03-25
打赏
举报
回复
可参考MVC模式或看看ejb中的设计模式
前后端
分离
与前后端不
分离
:深度解析**
在现代Web开发领域,前后端的开发模式是一个关键的议题。其中,前后端
分离
与前后端不
分离
这两种模式有着各自鲜明的特点、优缺点以及适用场景。总之,前后端
分离
和前后端不
分离
各有优劣,在实际的Web开发中,需要根据项目的具体需求、团队的技术能力和发展目标来选择合适的开发模式。
【
Java
】浅谈关于
代码
的耦合性
【
Java
】浅谈关于
代码
的耦合性前言一、需求二、简单的实现1.资源
代码
(项目提供)2.对需求的普通实现三、利用
业务
与逻辑
分离
的方式实现改进四、对需求改进后的同步项目改进(优点)总结 前言 前几天一个在公司里的朋友对还正在
Java
的道路上的我说了一些关于
代码
耦合性的问题,刚好今天碰上一个很好的案例,就拿来运用一下,用这个简单的案例突出一下**
业务
与逻辑
分离
**的一种思想,希望能对大家有所帮助。 一、需求 根据用户选择从而获取网络资源或本地资源。(实现会非常的简单,此文章的意义在于利用反射突出
业务
与逻辑分
前后端
分离
架构的特点以及优缺点
在前后端不
分离
的架构中,前端(用户
界面
)和后端(服务器端)
代码
都在同一个项目中,并且由同一套服务器技术(如PHP,JSP,ASP.NET等)生成。这种情况下,服务器端不仅负责处理
业务
逻辑,还要负责生成和返回前端的HTML页面。在前后端
分离
的架构中,前端和后端是相互独立的两个部分。前端负责用户
界面
的展示和交互,后端负责处理
业务
逻辑、数据库访问和数据处理。在前后端
分离
的应用模式中,后端仅返回前端所需的数据,不再渲染HTML页面,不再控制前端的效果。
**
Java
小白面试记:从基础到
业务
,一路开挂**
马小帅:嗨,面试官,我叫马小帅,之前在一家初创公司做
Java
开发。我对技术挺感兴趣的,平时喜欢研究各种新技术。
如何写好
Java
业务
代码
?这也是有很多规范的..
直接分享一段痛苦的项目维护经历吧,看大家有没有类似的经历。当时,我接手了一个维护项目,刚上班就接到新增一个显示字段的任务。我以为这应该是一个分分钟就能够搞定的小需求,没有想到这就开始了我的痛苦之旅。我梳理了关联的api后,发现每个api都是从controller控制层-》service-》服务层-dao数据层,甚至每个api都对应一个sql查询。但是,所有的api之间又有很大类似的
代码
。我开始阅读
代码
的时候,发现一个特殊的controller,在该controller里包括身份校验,参数校验,各种
业务
代码
,
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章