当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

将商业逻辑与UI逻辑区脱离[Java编程]

赞助商链接



  本文“将商业逻辑与UI逻辑区脱离[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
普通而言,我们需求计划我们的类如此以至于每一类做“一件事”.当触及用户接口代码时就更显得尤为重要,因为它很简单地封装“您要做什么”和“怎样显示它”.这种有效的配合避免了代码的反复利用.更不用说它令人称心的从GUI中辨别出我们的“事物逻辑”.利用这种办法,我们可以不但仅更简单地反复利用事物逻辑,它一样可以更简单地反复利用GUI.
别的的争议是“行动对象”存在的完成份离机械的多层次系统.行动主要的定位法则答应全部新事件改正后立即见效,并且这是如此一个惹人注目的设置系统的办法.但是这些行动对象可以被在一些差别的利用程序利用并且因此不会被一些特别的显示情势所约束.它们会公道地履行行动操作并且没有多余的事件.
下面的例子演示了从GUI代码中多么地轻松的辨别事物逻辑:
//: Separation.java
// Separating GUI logic and business objects
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

class BusinessLogic {
  private int modifier;
  BusinessLogic(int mod) {
    modifier = mod;
  }
  public void setModifier(int mod) {
    modifier = mod;
  }
  public int getModifier() {
    return modifier;
  }
  // Some business operations:
  public int calculation1(int arg) {
    return arg * modifier;
  }
  public int calculation2(int arg) {
    return arg + modifier;
  }
}

public class Separation extends Applet {
  TextField 
    t = new TextField(20),
    mod = new TextField(20);
  BusinessLogic bl = new BusinessLogic(2);
  Button
    calc1 = new Button("Calculation 1"),
    calc2 = new Button("Calculation 2");
  public void init() {
    add(t);
    calc1.addActionListener(new Calc1L());
    calc2.addActionListener(new Calc2L());
    add(calc1); add(calc2);
    mod.addTextListener(new ModL());
    add(new Label("Modifier:"));
    add(mod);
  }
  static int getValue(TextField tf) {
    try {
      return Integer.parseInt(tf.getText());
    } catch(NumberFormatException e) {
      return 0;
    }
  }
  class Calc1L implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      t.setText(Integer.toString(
        bl.calculation1(getValue(t))));
    }
  }
  class Calc2L implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      t.setText(Integer.toString(
        bl.calculation2(getValue(t))));
    }
  }
  class ModL implements TextListener {
    public void textValueChanged(TextEvent e) {
      bl.setModifier(getValue(mod));
    }
  }
  public static void main(String[] args) {
    Separation applet = new Separation();
    Frame aFrame = new Frame("Separation");
    aFrame.addWindowListener(
      new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
          System.exit(0);
        }
      });
    aFrame.add(applet, BorderLayout.CENTER);
    aFrame.setSize(200,200);
    applet.init();
    applet.start();
    aFrame.setVisible(true);
  }
} ///:~
可以看到,事物逻辑是一个直接完成它的操作而不需求提醒并且可以在GUI环境下利用的类.它正合适它的工作.辨别行动记录了全部UI的具体资料,并且它只通过它的大众接口与事物逻辑交流.全部的操作环绕中央通过UI和事物逻辑对象往复获得信息.因此辨别,轮番做它的工作.因为辨别中只知道它同事物逻辑对象对话(也就是说,它没有高度的结合),它可以被逼迫同别的范例的对象对话而没有更多的懊恼.
考虑从事物逻辑中辨别UI的条件,一样考虑当我们调整传统的Java代码使它运行时,怎样使它更易存活.
  以上是“将商业逻辑与UI逻辑区脱离[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 将商业逻辑与UI逻辑区脱离
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .