JAVA--三层架构学习

来源:互联网 发布:为什么安装不了知乎 编辑:程序博客网 时间:2024/05/17 22:43

JAVA–三层架构学习,我的地址本管理项目

学生党,正在学习,第一次写博客,许多写的不好的地方请多多指教,一定虚心学习:


我对三层架构,MVC框架的理解。

三层架构,即是把一个大的项目分为.表现层、逻辑层和数据层(找这个顿号找了好久(ㄒoㄒ))
1.表现层:UI,用户界面层,是用来和用户打交道的界面,以’我的地址管理本‘ (原谅我语文没学好,这个时候不知道用什么符号把 我的项目管理 本圈起来)为例,表现层 就有Addpanel (添加界面)、Deletepanel(删除界面)、Updeletepanel(修改界面)、Querypanel(查询界面)以及一个显示所有地址管理信息界面Listpanel. 如果还有其他功能就还需要其他的界面来展现给用户。
2.逻辑层:我觉得它的作用就像一个中间人一样,左边连着表现层,当用户需要添加信息的时候,逻辑层就调用一个 添加的方法 删除、修改、查询这些都需要逻辑层写了具体的方法根据项目的实际情况去调用右边数据层里的数据。
3数据层:就是一个容器一样,被逻辑层用来存数据,删除数据,修改等。


MyEclipse中项目格式

Markdown Extra 定义列表语法:

项目 addressManger

cn.hncu.addr
business(逻辑层):
AddrBusiness
dao(数据层):
AddrDaoFile

ui(表现层):
Addpanel (添加界面)Updeletepanel(修改界面)、Querypanel(查询界面)Listpanel.

### 要点

1.界面切换::界面切换原理很简单有一个主要的JFrame,然后当调用是么功功能时候,就new一个需要的JPanel 把它往JFrame上放就好了,主要是通过构造传参(构造传参真的棒棒哒,不仅是界面面切换,还有需要修改或者删除的数据都可以通过它来传递)例如:
public UpdatePanel(JFrame mainFrame, String updateStr) {
this.mainFrame = mainFrame;
this.updateStr = updateStr; }
// 切换回到ListPanel 界面;
mainFrame.setContentPane(new ListPanel(mainFrame));
mainFrame.validate(); (这个是校验,刷新的作用)
2.用来操作数据的Object一定要是静态的,这个老师以前讲过但是有时候还是想不起来。学艺不精啊:
private static Object objs[] = new Object[0];
3.在各个面板实现具体方法时候一定要记得表现层框架四步以添加方法位列
private void add() {
int Age = 0;
// 表现成代码框架 1: 收集参数 2 : 组织参数 3:调用逻辑层 4: 通过结果返回不同的页面
//1,收集参赛 tfdName tfdAge tfdAddr
String name = tfdName.getText();
String strAge = tfdAge.getText();

try {    Age = Integer.parseInt(strAge);} catch (NumberFormatException e) {    // TODO Auto-generated catch block    JOptionPane.showMessageDialog(null, "输入年龄格式错误");    return;}String Addr = tfdAddr.getText();//2:组织参数String str = name + "," + Age + "," + Addr;//3: 调用逻辑层AddrBusiness ebo = new AddrBusiness();boolean res = ebo.add(str);//4: 返回响应界面if (res) {    // 添加成功, 返回ListPanel;    back();} else {    JOptionPane.showMessageDialog(null, "添加失败");    return;}

### 难点
个人觉得难点一般都在逻辑层,在于具体的算法。由于我是初学者,所以我觉得我还是详细的写一下,逻辑层里面的方法把。
1.逻辑层里面写了两个方法,contain();一个是判断新的数据是否已经存在   getAll(): 拿出所有的数据。
    2. 具体的几个方法(返回值都为Boolean值,可以很好的告诉表现层具体方法的实现结果)
add();方法
   public boolean add(Object obj) {
// 卫条件
if(contains(obj)){
// 说明已经存在,不能添加
return false;
}
//把新的元素加到Objs 里,然后存到数据层
Object tempobjs[] = new Object [objs.length+1];
System.arraycopy(objs, 0, tempobjs,0, objs.length);
tempobjs[objs.length]=obj;
objs = tempobjs;

    boolean boo = save();//★4★     return boo;

  }
delete();
   public boolean delete(Object obj2) {
//同样的一进来是卫条件,
if(!contains(obj2)){
  eturn false;
}
// 把不需要删除的所有数据临时放到一个数组,然后再传给原来的objs 即可实现删除
Object tempobj[] = new Object [objs.length-1];
int k=0;
for(Object obj:objs){
if(!obj.equals(obj2)){
tempobj[k++]=obj2;
}
}
objs=tempobj;

            boolean boo = save();//★5★             return boo;

}
Update()
  public boolean update(Object oldObj, Object newObj){
//找到要修改数据,用修改后的数据替换即可
for(int i=0; i

}

以后还会多多写博客,多多学习,多多进步的。

0 0
原创粉丝点击