简单工厂设计模式

来源:互联网 发布:美工收入 编辑:程序博客网 时间:2024/05/16 14:54
直接代码:封装类:
package com.example.hujhguiyhiu.test_demo.DaHuaMoShi_1;/** * Created by hujhguiyhiu on 2016/8/16. */public class FengZhuang {    private double danJia;    private int shuLiang;    public void setDanJia(double danJia) {        this.danJia = danJia;    }    public void setShuLiang(int shuLiang) {        this.shuLiang = shuLiang;    }    public double getDanJia() {        return danJia;    }    public int getShuLiang() {        return shuLiang;    }    //虚方法,主要就是在继承者们那进行逻辑运算    public double yunSuan() {        return 0;    }

}

逻辑代码类:

package com.example.hujhguiyhiu.test_demo.DaHuaMoShi_1;import android.app.Activity;import android.os.Bundle;import android.os.PersistableBundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import com.example.hujhguiyhiu.test_demo.R;import java.util.ArrayList;import java.util.List;/** * Created by hujhguiyhiu on 2016/8/16. */public class DHMS_Activity1 extends AppCompatActivity {    private FengZhuang fz;    private EditText editText1;    private EditText editText2;    private Button bt1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.dhms1);        editText1 = (EditText) findViewById(R.id.et1);        editText2 = (EditText) findViewById(R.id.et2);        bt1 = (Button) findViewById(R.id.bt1);        //类型        bt1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                fz = YunSuanIpm.onCreate(YunSuanIpm.TYPE_SY);                fz.setDanJia(Double.valueOf(editText1.getText().toString()));                fz.setShuLiang(Integer.valueOf(editText2.getText().toString()));                double t = fz.yunSuan();            }        });    }}
主程序类:
package com.example.hujhguiyhiu.test_demo.DaHuaMoShi_1;import android.util.Log;/** * Created by hujhguiyhiu on 2016/8/16. */public class YunSuanIpm {    public static final String TYPE_SY = "SY";    public static final String TYPE_ZLX = "ZLX";    public static FengZhuang onCreate(String shenY) {        FengZhuang fz = null;        switch (shenY) {            case TYPE_SY:                fz = new syYunSua();                break;            case TYPE_ZLX:                fz = new zlxYunSua();                break;        }        return fz;    }    public static class syYunSua extends FengZhuang {        @Override        public double yunSuan() {            double t = 0, danJia = getDanJia();            int shuLiang = getShuLiang();            t = danJia * shuLiang;            Log.d("test", "sy总计:" + t);            return t;        }    }    public static class zlxYunSua extends FengZhuang {        @Override        public double yunSuan() {            double t = 0, danJia = getDanJia();            int shuLiang = getShuLiang();            t = danJia * shuLiang;            Log.d("test", "zlx总计:" + t);            return t;        }    }}
主要的就是封装类中虚方法。。。

0 0