简单工程模式
来源:互联网 发布:全球cs专业排名知乎 编辑:程序博客网 时间:2024/06/05 08:44
在开始说工厂模式之前先说说面向对象。
面向对象有三大特性:封装、继承、多态。
面向对象的好处
1、面向对象的封装思想可以减低代码的耦合度,使程序更加灵活,容易修改,并且易于复用。编程应该尽可能的去避免重复,否则越大的系统,维护成本会越高。
2、为了 方便维护管理,应该把业务逻辑代码和功能代码分开,减低它们之间的耦合度,菜可以达到容易维护和扩展。
简单工厂模式
简单工厂模式 (Simple Factory) 又叫静态工厂方法(Static Factory Method)模式。
简单工厂模式通常是定义一个工厂类,这个类可以根据不同变量返回不同类的产品实例。
简单工厂模式是一种对象创建型模式 。但是简单工厂模式不属于23种Gof设计模式之一。
Product (Operation) : 产品角色,简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
// Product角色,所有实例所共有的公共接口abstract class Operation { public int numA; public int numB; public abstract int GetResult();}
ConcreteProduct组 : 具体产品角色,实现 Product 中的接口。
// 工厂角色,简单工厂模式的核心,它负责实现创建所有实例的内部逻辑class OperationFactory { public static Operation CreateOperation (char operate) { Operation oper = null; switch(operate) { case '+': oper = new Add(); break; case '-': oper = new Sub(); break; case '*': oper = new Mul(); break; case '/': oper = new Div(); break; default: break; } return oper; }}
测试代码
public class SimpleFactoryPattern { public static void main(String[] args) { int numA = 10; int numB = 3; int result = 0; Operation oper = OperationFactory.CreateOperation('+'); oper.numA = numA; oper.numB = numB; result = oper.GetResult(); System.out.println(numA + " + " + numB + " = " + result); }}
优点
简单工厂模式的工厂类是整个模式的关键。其中包含了必要的逻辑判断,根据外部信息,决定究竟应该创建哪个具体类的对象。
通过使用简单工厂模式,用户无需了解对象如何创建的,只要传入必要信息就可以了。
缺点
工厂类集中了所有实例的创建逻辑,违背了高内聚责任分配原则。
随着系统中具体产品类不断增多,势必要不断修改工厂类,不易维护和扩展。同时,这也违背了开放封闭原则。
另外贴上一个个UML类图图示样例
一、类图
矩形框代表类,类图分三层
1、第一层显示类的名称,如果是抽象类,则用斜体显示。
2、第二层是类的 特性,通常就是字段和属性。
3、第三层是类的 操作,通常是方法或行为。注意 ‘+’ 表示 public,’-’ 表示 private,’#’ 表示 protected 。
二、接口
接口图与类图的区别主要是顶端有<>显示。
1、第一行是接口的名称。
2、第二行是接口的方法,接口还要一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了‘讲人话’的接口。
三、类与类,类与接口之间的关系
1、继承关系用 空心三角 + 实线 来表示。
2、实现接口用实心三角形+ 虚线来表示。
3、关联关系用实线箭头来表示。
4、聚合关系用空心的菱形 + 实线 箭头来表示。
聚合关系表示一种 弱 的 “拥有” 关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。
5、合成\组合关系用实心的菱形 + 实线箭头 来表示。
组合是一种 强 的 “拥有” 关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。
合成关系的连接线两端还有数字,这被称为:基数。表明这一端的类可以有几个实例。如果一个类可能有无数个实例,就用“n”来表示。关联关系、聚合关系也可以有基数。
6、依赖关系用虚线箭头来表示。
阅读全文
0 0
- 简单工程模式
- 简单工程模式
- 简单工程模式
- 简单工程模式
- 设计模式----简单工程模式
- 【初探第一章】 简单工程模式
- 设计模式之简单工程模式
- 工程模式(一)简单工厂模式
- php设计模式:简单工程模式
- 简单工程模式(c++描述)
- 设计模式 -- 策略模式 + 简单工程模式(C++)
- 【设计模式】简单工程模式和策略模式的区别
- 1. 一起学习c++设计模式-简单工程模式
- 大话设计模式java版本 第一章 简单工程模式
- 工厂模式(简单工厂模式+工厂方法模式+抽象工程模式)
- 工程文件管理之makefile最简单模式
- 大话设计模式c++实现--简单工程模型
- 设计模式-工程模式
- Android UI 排版
- SEM32出现未定义标识符的解决方法
- How to receive a million packets per second
- android M N下拉状态栏背景透明 源码
- 润乾报表V5自定义函数中当有多个参数时如何获取
- 简单工程模式
- 秒杀系统架构优化思路
- redis必杀命令:事务
- hdu 6121 Build a tree(k叉树的异或和)
- 异常 org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException
- Tomcat8.5版本在eclipse中的配置
- C++构造函数与析构函数能否为虚函数
- 明明就是你
- springboot+mybatis初试深浅