1、面向对象的设计思想:
- 可维护:要改,只需要更改要更改的地方,不需要更改的地方不动, 提取可能会发生改变的代码
- 可复用:一次编写,多次重复使用,公共部分提出,避免代码冗余
- 可扩展:可以添加新的需求,而不影响以前的功能,亦不需要对以前代码做改动(或者改动最少),实现高内聚,低耦合
- 灵活性好:可能满足多种需求
2、简单工厂设计模式
package com.shma.simpleFactoryPattern;
/**
* 简单工厂模式设计一个计算器,实现加减乘除
* @author Administrator
*
*/
public class TestCalculatorApp {
public static void main(String[] args) {
OperEnum tmpEnum = OperEnum.ADD;
Operation operation = OperationFactory.getOperation(tmpEnum);
operation.setNumberA(1.3);
operation.setNumberB(1.5);
if(operation != null) {
System.out.println(operation.operation());
}
}
}
package com.shma.simpleFactoryPattern;
public class OperationFactory {
public static Operation getOperation(OperEnum oper) {
switch(oper) {
case ADD :
return new AddOper();
case SUB :
return new SubOper();
case MUL :
return new MulOper();
case DIV :
return new DivOper();
default :
return null;
}
}
}
package com.shma.simpleFactoryPattern;
public enum OperEnum {
ADD, SUB, MUL, DIV
}
package com.shma.simpleFactoryPattern;
/**
* 实现计算器的抽象操作类
* @author Administrator
*
*/
public abstract class Operation {
protected double numberA = 0;
protected double numberB = 0;
public abstract double operation();
public double getNumberA() {
return numberA;
}
public void setNumberA(double numberA) {
this.numberA = numberA;
}
public double getNumberB() {
return numberB;
}
public void setNumberB(double numberB) {
this.numberB = numberB;
}
}
package com.shma.simpleFactoryPattern;
/**
* 加法操作
* @author Administrator
*
*/
public class AddOper extends Operation {
@Override
public double operation() {
return numberA + numberB;
}
}
package com.shma.simpleFactoryPattern;
public class DivOper extends Operation {
@Override
public double operation() {
if(numberB == 0) {
return -1;
}
return this.numberA / this.numberB;
}
}
package com.shma.simpleFactoryPattern;
/**
* 乘法运算
* @author Administrator
*
*/
public class MulOper extends Operation {
@Override
public double operation() {
return numberA * this.numberB;
}
}
package com.shma.simpleFactoryPattern;
/**
* 减法运算
* @author Administrator
*
*/
public class SubOper extends Operation {
@Override
public double operation() {
return this.numberA - this.numberB;
}
}
3、UML类图
矩形框:类(类分为三层,第一层为类名,第二层为类的字段或者属性,第三层为类的行为或方法,+表示public,-表示private,#表示protected,类名为斜体则该类为抽象类)
矩形框:接口(接口分为两层,第一层接口名,上方为<<interface>>,第二层为接口的行为或者方法,+表示public,-表示private,#表示protected)
空心三角形+实线:继承关系(箭头指向父类)
空心三角形+虚线:实现接口(箭头指向接口)
实线箭头:表示关联关系(被指向的为指向的一个属性)
空心菱形+实线箭头:表示聚合关系(依赖关系弱)
实心菱形+实线箭头:表示组合关系(强的依赖关系,被包含的是包含的一部分,不可分隔)
虚线箭头:表示依赖关系
相关推荐
thief idea版插件jar包
[ng-book.2r53随书代码]ng-book.2.r53.2017.3.code-samples.zip
Dive deep into dubbo user guide or download pdf to find more details, or Read dubbo admin guide or download pdf for dubbo application administration topics. Interested in how dubbo is designed, or ...
Version Control with Subversion svn-book.chm TortoiseSVN-1.4.3.8645-win32-svn-1.4.3是由http://www.163disk.com/fileview_241204.html上传到163网盘,供大家免费下载。
pcasm-book-simplified-chinese.pdf是一个翻译成中文的汇编语言教程,不是详细的介绍汇编语言,只有一些最基本的方面的介绍。不过这本书是叙述在80386和后来的处理器如何在保护模式下编程。用NASM和DJGPP C/C++...
Advanced Swift 5 A deep dive into Swift’s features, from low-level programming to high-level abstractions. by Chris Eidhof, Ole Begemann, Florian Kugler, and Ben Cohen
book-insert.ejs
11. **设计模式**:QT4中的设计模式如工厂模式、观察者模式等,是理解和编写高效代码的重要概念。 通过这个压缩包中的例子,你可以逐步学习和实践以上各个方面的知识,从而成为一名熟练的QT4开发者。每个例子都是一...
421页rfpa综述2020-book-modellingrockfracturingprocess.pdf
《书本资源大合集——book-assets-master.zip详解》 在我们的数字时代,电子书籍的制作与分享变得越来越普遍,而资源的管理与整合则显得至关重要。"book-assets-master.zip"是一个专门针对书籍资源的压缩文件,包含...
Android应用源码之AccountBook-3.zip项目安卓应用源码下载Android应用源码之AccountBook-3.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
book-cplusplus-master.zip
book-manager-master.zip
openerp-logistics-book.complete.pdf
dragon-book-exercise-answers-master.zip
本文将深入探讨“book-manage-index-page.rar”这个压缩包中所体现的网页设计理念和技术,重点关注“book 17181 8.html”这个HTML主页左菜单页面的设计。 首先,我们要理解这种上、左、右三分布局的设计模式。这是...
kali-book-zh-hans.zip
A College Text-Book Of Physics - Kimball.part1.rar A College Text-Book Of Physics - Kimball.part1.rar A College Text-Book Of Physics - Kimball.part1.rar