设计模式-工厂模式(学习)
设计模式-工厂模式(学习)
在程序的世界里,就像射雕英雄传一样,我们的技能就像是武功一样,我们只有不断去学习练习才能有机会像郭靖一样成为“天下第一”。
我认为技能和武功是很类似的,也有外功和内功,武侠之内功好比是我们技能算法;武侠的外功好比是我们技能中某一语言的语法;武功秘籍好比是我们每种语言都有API和文档;武侠的勤加练习好比我们的每天学习,练习,使用这些语言。如何去快速,高效的使用它们,就需要有好的方法练习使用,好比黄蓉有好的方法,郭靖没有好的方法,只能勤学苦练;设计模式可以说是一种好的方法,也可以说是高效运用我们技能知识的方法。总而言之方法很重要。--我的总结
今天我特意复习一下设计模式。-- 工厂模式
package com.itdong.patterns.FactoryPattern;
// 定义一个包含有绘图的接口
public interface Shape {void draw();
}
定义三个具体的实体类
package com.itdong.patterns.FactoryPattern;
// 圆形
public class Circle implements Shape {@Overridepublic void draw() {// TODO Auto-generated method stubSystem.out.println("Inside Circle::draw() method.");}}
package com.itdong.patterns.FactoryPattern;
// 矩形
public class Rectangle implements Shape{@Overridepublic void draw() {// TODO Auto-generated method stubSystem.out.println("Inside Rectangle::draw() method.");}}
package com.itdong.patterns.FactoryPattern;
// 方形
public class Square implements Shape {@Overridepublic void draw() {// TODO Auto-generated method stubSystem.out.println("Inside Square::draw() method.");}}
创建工厂,生成基于给定信息的实体类对象
package com.itdong.patterns.FactoryPattern;public class ShapeFactory {// 使用 getShap 方法获取形状类型的对象public Shape getShape(String shapeType){if(shapeType == null){return null;}if(shapeType.equalsIgnoreCase("CIRCLE")){return new Circle();}else if(shapeType.equalsIgnoreCase("RECTANGLE")){return new Rectangle();}else if(shapeType.equalsIgnoreCase("SQUARE")){return new Square();}return null;}}
使用工厂,传递类型信息获取实体类对象
package com.itdong.patterns.FactoryPattern;public class FactoryPattern {// 意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂,创建过程延迟到子类// 解决:接口选择问题// 使用:不同条件下创建不同的实例// 优点:一个调用者想创建一个对象,只需要知道名称就可以了;扩展性高,增加一个产品,只要扩展一个工厂类就可以,屏蔽产品具体实现,调用者只关心产品接口// 缺点:每增加一个产品,都需要增加一个具体类和对象实现工厂,系统类成倍增长,一定程度增加复杂度,同时增加系统具体类依赖public static void main(String[] args) {// TODO Auto-generated method stubShapeFactory shapeFactory = new ShapeFactory();// 获取Circle对象,调用其draw方法;Shape shape1 = shapeFactory.getShape("circle");shape1.draw();// 获取Circle对象,调用其draw方法;Shape shape2 = shapeFactory.getShape("rectangle");shape2.draw();// 获取Circle对象,调用其draw方法;Shape shape3 = shapeFactory.getShape("square");shape3.draw();}}
设计模式-工厂模式(学习)相关推荐
- 设计模式-工厂模式学习(初级)
个人不善于表达 思路见于代码 [欢迎大神拍砖批评指点] using System; using System.Collections.Generic; using System.Linq; using ...
- java设计模式工厂模式_Java中的工厂设计模式
java设计模式工厂模式 Welcome to the Factory Design Pattern in Java tutorial. Factory Pattern is one of the C ...
- Python 设计模式 - 工厂模式
精通Python设计模式第二版 第 1 章 工厂模式 学习笔记 工厂模式 工厂模式的思想意在简化对象的创建过程.调用者(客户端)不清楚对象的来源以及生成对象的方式,调用者只需要调用某个方法或者实例某个 ...
- Java设计模式-工厂模式(3)抽象工厂模式
在Java设计模式-工厂模式(2)工厂方法模式 我们知道了工厂方法模式解决了简单工厂模式中的缺陷,做到了满足开闭原则,但是时代是进步的,进而又产生新的问题,工厂难道只能生产一种东西吗.我们所见到的工厂 ...
- Java设计模式-工厂模式(2)工厂方法模式
在Java设计模式-工厂模式(1)简单工厂模式 中我们介绍了简单工厂模式,提到了简单工厂模式违背了开闭原则,而"工厂方法模式"是对简单工厂模式的进一步抽象化,其好处是可以使系统在不 ...
- Java设计模式-工厂模式(1)简单工厂模式
Java设计模式-工厂模式(1)简单工厂模式 一.前言 1)例子 2)类图关系 3)代码实现 二.简单工厂模式 2.1.概述: 2.2.类图关系: 2.3.代码修改: 2.4.优缺点 2.5.扩展-简 ...
- 设计模式---工厂模式
设计模式---工厂模式 工厂方法模式 概述:工厂方法模式中抽象工厂负责定义创建对象的接口,具体创建工作由继承抽象工厂的具体类实现. 优点:客户端不需要再负责对象的创建,从而明确了各个类的职责,如果有新 ...
- java设计模式工厂模式_Java中的复合设计模式
java设计模式工厂模式 Composite pattern is one of the Structural design pattern. Composite design pattern is ...
- java设计模式工厂模式_Java中的桥梁设计模式
java设计模式工厂模式 Today we will look into Bridge Design Pattern in java. When we have interface hierarchi ...
最新文章
- [转]使用C#调用金诚信71x系列读卡器的DLL
- 新站SEO优化五点注意事项!
- Google IO 谈 AI First,我们却发现了更多
- python调换字符串顺序_python实现指定字符串交换
- 几个支持生成Python代码的UML工具
- richTextBoxFontClass
- 再介绍一篇Contrastive Self-supervised Learning综述论文
- Python版——博客网站九 编写Android版本的移动App
- 如何在C#中实现图片缩放
- extjs中grid中行内文本或图片居中显示
- JavaScript书籍的免费32本-收集分享
- 总比特率是什么意思_新基金初始净值低于1是什么意思?什么时候开始有净值?...
- sja1000 CAN控制器波特率计算方法详解
- Ubuntu20.04 安装wine QQ
- cruzer php sandisk 闪迪u盘量产工具_sandisk量产工具(闪迪U盘量产工具) 1.4
- 物联网技术应用成商业市场盈利关键
- 3g无线图传点到点模式与服务器模式比较,4G网络的几个关键技术指标 - 3G和4G LTE网络架构之间的区别...
- 什么是DAOstack
- 堆内存(heap)和栈内存(stack)区别
- Highcharts去掉右下角URL水印