Java 工厂模式(一)——简单工程模式

一、简单工厂模式示例图:

 

简单工厂模式是一种最基本的、最简单的工厂模式,来获取对象通过对接口的继承,由工厂决定创建哪个对象,而不是对象自己通过new来创建。

二、简单工厂的个人理解:

优点:

1、便于对象的扩展,比如要创建一个五边形,只需要继承Shape接口即可,在工厂中对增加的类进行注册,既可以通过ShapeFactory来获取到增加的对象。

2、将同一类型的对象进行分装提取,共性都放在接口中,个性放在具体类中。

缺点:

1、不利于不同类型对象的创建,比如现在要增加一个水果类,就需要重写一个接口、一个工厂类,这样子如果有多个不同的类型,就会产生n个工厂,代码会比较臃肿。

原文地址:https://www.cnblogs.com/zhoudaxing/p/10328229.html

时间: 2024-11-13 10:32:10

Java 工厂模式(一)——简单工程模式的相关文章

简单工程模式实例

前言 这几天做了一个应用程序,给项目添加的一个功能.一直想用什么模式来写,基本代码都写完了,还是没有用到模式,前天晚上睡觉中突然觉得就是简单工厂模式,于是代码已经浮现出来.昨天去了公司开始写. 过程 这是简单工厂类图:(图是从网上自己弄的) <大话设计模式>中,这个简单工厂模式,那个基接口是一个类,不是接口.我在写的时候也是写的是类.但是发现很多不可能实现.因为发现很多类,都有各自的字段属性,都不一样.所以没法用这个类,最后还是用了接口,感觉还是接口厉害,多态实现.工厂类跟基类接口的关系是依赖

SQL Server数据库的三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式

SQL Server数据库的三种恢复模式:简单恢复模式.完整恢复模式和大容量日志恢复模式 这篇文章主要介绍了SQL Server数据库的三种恢复模式:简单恢复模式.完整恢复模式和大容量日志恢复模式,需要的朋友可以参考下 如何图形界面下修改恢复模式 找到你想修改的数据库 右键 > 属性  > 左侧 选项既可看到 1.Simple 简单恢复模式, Simple模式的旧称叫"Checkpoint with truncate log",其实这个名字更形象,在Simple模式下,SQ

设计模式---(简单工厂模式,工厂模式,抽象工程模式),单例模式,代理模式,装饰器

简单工厂模式    简单工厂模式并不属于GoF的23种设计模式.     那么为什么我要用工厂模式呢?请看下面的一段程序.  #include  <iostream> using  namespace  std; class  Fruit  { public:     Fruit(string  name)  {         this-­‐>name  =  name;         if  (name  ==  "apple")  {      

简单工程模式 -- 大话设计模式

在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<大话设计模式>来祭奠那逝去的…… 简单工厂的作用是实例化对象,不需要客户了解这个对象属于哪个具体子类.简单工厂实例化的类具有相同的接口或者基类,在子类相对固定或者不需要扩展的时候,可以使用简单工厂.如数据库生产工厂就可以使用简单工厂来实现. 1.简单的计算器实现 输入两个数和运算符,实现两数相加或者两数相减. 首先我们定义一个运算类,包含两个属性:数字A和数字B,还有一个获取结果的虚方法GetResult方

简单工程模式

简单工厂模式 定义:专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类或接口; 意图:提供一个类,由它负责根据一定的条件创建某一具体类的实例; 1 public class FactoryDemo{ 2 public static void main(String []args){ 3 IFruit fruit = Factory.getFruit("橘子"); 4 if(fruit!=null){ 5 System.out.println(fruit.get())

Python之简单工程模式实现

最近又看了下大话设计模式,决定用Python来试着实现下. 基础类 1 class OperationBase(): 2 """ 3 基础运算类 4 """ 5 result = 0 6 def GetResult(self): 7 return self.result 继承类 1 class OperationAdd(OperationBase): 2 """ 3 加法类,继承基础运算类 4 ""

设计模式C++实现一:简单工程模式

参考大话设计模式和网上的一些资料,自己编写下一些简单的设计模式,让自己了解这些设计模式的妙处! #ifndef OPERATION_H #define OPERATION_H #include<iostream> using namespace std; class Operation { protected: double opA, opB; public: bool SetValue(double& n, double& m); virtual double GetResu

工厂方法模式和简单工厂模式的选折

开闭原则,其实是要求多站在全局的角度来规划类. 工厂方法模式比简单工程模式要复杂,它对简单工厂进行了进一步的抽象. 抽象是扩展视角,它增加了全局数据维护的负担.类变多了,客户端需要对接更多的一部分类.但是写代码的逻辑结构化了,写代码的人轻松了,调用它的人负担重了. 为了方便调用者,可以套外观模式.但是这样最基础的java代码越来越绕了. 当类越来越多,变化越来越复杂,并需要长期的维护和升级的时候才需要工厂方法模式. 一般情况下只需要简单工厂模式. 工厂方法模式是产品迭代后做的.一方面因为结构已经

有关反射和简单工厂模式的简单实现

先抛出两个概念,反射机制和简单工厂模式. 一句话谈谈自己的理解 反射机制就是由参数(包名类名的字符串),获取具体类的属性方法.简单工程模式就是由一个类作公共出口来生成其他类的实例,父类子类生成模式的简单应用,可以由参数来决定具体需要的实例.往下看,是我搜到的解释,相对完善一点. 什么是反射机制? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制.上