日期:2014-05-20  浏览次数:20634 次

类的设计问题
我设计了两个类MyFrame和 Analysis
MyFrame是一个窗口,其中有一个按钮,和文本框,
单击按钮之后执行Analysis中的方法myrun()
而myrun方法是向文本框写入内容,
——————
这个应该怎么设计。。。
定义的时候大概怎么写
成员类,还是要继承,
想了很久,还没有头绪,,
求解。。。

------解决方案--------------------
仅供参考,有提倡:少用继承,多用组合
Java code

    interface Frame {
         //初始化窗口函数
         void open();
    }
    public class MyFrame implements Frame{
        private Button button;
        private Action onButton;
        private Text text;

        //添加属性的get set 方法

        public void open() {
            ...//组件初始化略去
              onButton = new Analysis(this);
            ...//其他操作
            button.addSelectedListen(new Listen(){
                onButton.myrun();
            });
        }
        
    }

    abstract class Action {
        private Frame frame;
        public void setFrame(Frame frame) {
             this.frame = frame;
        }
        public Frame getFrame() {
             return this.frame;
        }
        void myrun();
    }

    public class Analysis extends Action {
        public void myrun(){
            if (this.getFrame() instanceof MyFrame) {
                MyFrame myFrame = (MyFrame) this.getFrame();
                myFrame.getText().//文本写入操作
                  //...其他操作
            }
        };
    }

------解决方案--------------------
多用接口,少用继承,因为java不支持多继承