简单工程模式
1.注意代码规范
2.面向对象编程:可维护,可复用,可扩展,灵活性好
通过封装,继承,多态把程序的耦合度降低
3.紧耦合 松耦合
下面就给一个简单工厂模式的例子:
是一个加减乘除的运算的例子:
(1)Operation.java类
()
- public class Operation {
- private double _numberA=0;
- private double _numberB=0;
- public double get_numberA() {
- return _numberA;
- }
- public void set_numberA(double _numberA) {
- this._numberA = _numberA;
- }
- public double get_numberB() {
- return _numberB;
- }
- public void set_numberB(double _numberB) {
- this._numberB = _numberB;
- }
- public double getResult(){
- double result=0;
- return result;
- }
- }
(2)AddOperation.java
- //加法
- public class AddOperation extends Operation{
- public double getResult() {
- double result=0;
- result= get_numberA()+get_numberB();
- return result;
- }
- }
- //减法
- class SubOperation extends Operation{
- public double getResult() {
- double result=0;
- result= get_numberA()-get_numberB();
- return result;
- }
- }
- //乘法
- class MulOperation extends Operation{
- public double getResult() {
- double result=0;
- result= get_numberA()*get_numberB();
- return result;
- }
- }
- //除法
- class DivOperation extends Operation{
- public double getResult() {
- double result=0;
- if (get_numberB()==0) {
- try {
- throw new Exception("除数不能为零");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- result= get_numberA()/get_numberB();
- return result;
- }
- }
(3)操作工厂类:OPerationFactory.java
- public class OPerationFactory {
- public static Operation createOperation(String operate) {
- Operation oper=null;
- switch (operate) {
- case "+":
- oper=new AddOperation();
- break;
- case "-":
- oper=new SubOperation();
- break;
- case "*":
- oper=new MulOperation();
- break;
- case "/":
- oper=new DivOperation();
- break;
- }
- return oper;
- }
- }
(4)测试类 Main.java
- public class Main {
- public static void main(String[] args) throws Exception{
- Operation oper;
- oper=OPerationFactory.createOperation("+");
- oper.set_numberA(9);
- oper.set_numberB(90);
- double result=oper.getResult();
- System.out.print(result);
- }
- }
此时一个简单工厂模式已经实现了,不管你是控制台程序,windows程序,web程序,PDA程序,或者手机程序,都可以用这段代码来实现计算器的功能
若将来有一天,需要增加一个其他的运算,只需要改AddOperation.java,然后在工厂类里面增加Switch分支即可、
4.下面我们就给出这几个类的结构图
5。UML类图
看那个动物矩形框,它代表一个类(Class)。类图分三层:显示类的名称,如为抽象类,用斜体表示。类的属性,通常是字段和属性。类的操作,通过为行为和方法。
注意:前面的符号:+ 表示public --表示private # 表示protected
(1)继承关系用 空心三角形+实线 来表示
(2)实现接口用 空心三角形+虚线 来表示
(3)关联(association)关联关系用 实线箭头 来表示
(4)聚合关系用 空心的菱形+实线箭头 来表示。
(5)组合 用实心菱形+实线箭头表示
(6)依赖关系用虚线箭头表示
最后总结几句:
编程是一门技术,更加是一门艺术。
在写代码时,要时常考虑如何让代码更加的简练,更加容易维护,容易扩展,和复用,只有这样才可以得到提高。
此外UML类图,也不可一蹴而就,这些都是一个过程,做得多了,就会了!