第一章 简单工厂
首先要考虑代码中存在的逻辑漏洞和不恰当之处
- 比如说:计算器例子中的变量名使用不规范,多余的分支判断
使用封装、继承、多态把程序的耦合度降低
封装:用计算器的例子来说,就是把业务逻辑(计算器类)和应用逻辑分开(调用函数)给分开。这样实现复用功能。
继承和多态:用书中计算器例子的伪代码来说明
class Operation{ number, numberB, result; NumberA(){ //设置numberA,返回numberA; } NumberB(){ //设置numberB,返回numberB; } GetResult(){ result=0; return result; } } //=================================== class OperationAdd extends Operation{ GetResult(){//覆盖 result=numberA+numberB; return result; } } class OperationAdd extends Operation{} class OperationSub extends Operation{} class OperationMul extends Operation{} class OperationDiv extends Operation{} //=================================== //简单工厂 class OperationFactory{ public static Operation createOperation(String operate){ Operation oper=null; switch(operate){ case "+" : oper = new OperationAdd(); break; //................ } return oper; } } //=================================== //调用 Operation oper; oper = OperationFactory.createOperation("+"); oper.NumberA(1); oper.NumberB(2); double result = oper.GetResult();
UML基本规则
- 接口有两种表现方式:<< interface >> 类型,棒棒糖类型;
- 继承关系:空心三角形+实线(指向父亲);
- 接口:空心三角形+虚线(指向接口);
- 关联(企鹅需要知道气候的变化): 实线(指向气候);
- 聚合(弱拥有,大雁与雁群):空心菱形+实线箭头(指向大雁);
- 合成(强拥有,鸟和它的翅膀):实心菱形+实线箭头(指向翅膀);
- 依赖(动物和空气):虚线(指向空气);