java设计模式--简单工厂】的更多相关文章

java设计模式--简单工厂 简单工厂不是一个标准的设计模式,但是很常用需要掌握. 在java应用开发中,要"面向接口编程". 1.java中接口的概念: 在java中接口是一种特殊的抽象类,跟一般的抽象类相比,接口里面所有的方法都是抽象方法,接口里面所有的属性都是常量. 2.接口用来做什么? 接口相当于一份契约,约定了实现类应该要实现的功能. 3.接口的思想: "封装隔离",这里的封装是指"对被隔离体的行为的封装" 4.选择接口还是抽象类? 在…
 简单工厂设计模式 工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式.它定义一个用于创建对象的接口,由子类决定实例化哪一个类. 核心知识点如下: (1) 大量共同定义的接口. (2) 由不同的对象去实现该接口. (3) 子类(具体工厂类)决定实例化哪一个类(具体产品类)有着“一对一”的关系. 前言(也算是工厂的一个应用需求场景吧) 最近在构建自动化测试平台,公司需求是:必须在IE,火狐,Google浏览器下回归测试用例.Selenium的webdriv…
一.什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式.通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 二.模式中包含的角色及其职责 1.工厂(Creator)角色简单工厂模式的核心,它负责实现创建所有实例的内部逻辑.工厂类可以被外界直接调用,创建所需的产品对象.2.抽象(Product)角色简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口.3.具体产品(Concrete Product)角色简单工厂模式所创建的具体实例…
工厂模式分为三种:简单工厂模式,工厂方法模式,抽象工厂模式.我看有的书上和有的文章里是分为两种,没有简单工厂. 工厂模式主要的作用是:一个对象在实例化的时候可以选择多个类,在实例化的时候根据一些业务规则来选择实例化哪个类. 1.先定义一个图形接口,有一个画方法 public interface Shape { void draw(); } 2.再创建两个实现接口的实体类 public class Rectangle implements Shape { @Override public void…
简单工厂模式(Static Factory Method) 简单工厂模式是类的创建模式,又叫静态工厂方法(Static Factory Method)模式.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.那么简单工厂模式应用在那些场景呢: 拿登录功能来说,假如应用系统需要支持多种登录方式如:口令认证,域认证(口令认证通常是去数据库中验证用户,而域认证则是需要到微软的域中去验证用户).那么自然的做法就是建立一个各种登录方式都适用的接口:如下图所示: package com.tutoria…
1 工厂模式简单介绍 工厂模式的定义:简单地说,用来实例化对象,取代new操作. 工厂模式专门负责将大量有共同接口的类实例化.工作模式能够动态决定将哪一个类实例化.不用先知道每次要实例化哪一个类. 工厂模式能够分一下三种形态: 简单工厂 (Simple Factory)模式:又称静态工厂模式(StaticFactory). 工厂方法 (Factroy Method)模式:又称多态性工厂模式(Polymorphic Factory). 抽象工厂 (Abstract Factroy)模式:又称工具箱…
原文见:http://www.jb51.net/article/62068.htm 这篇文章主要介绍了Java设计模式之工厂模式(Factory模式)介绍,本文讲解了为何使用工厂模式.工厂方法.抽象工厂.Java工厂模式举例等内容,需要的朋友可以参考下   工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我…
Java设计模式之工厂方法模式 责任编辑:覃里作者:Java研究组织   2009-02-25   来源:IT168网站   文本Tag: 设计模式 Java [IT168 技术文章]          一 .工厂方法(Factory Method)模式 工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中.核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂…
原文地址:Java 设计模式之工厂模式(二) 博客地址:http://www.extlight.com 一.背景 本篇内容是 Java 设计模式创建型模式的第二篇.上一篇主题为 <Java 设计模式之单例模式(一)> 二.简单介绍 在介绍工厂模式之前,我们需要了解设计模式中应该遵循的原则. 五大原则: 1) 单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因.即一个类中应该只有一类逻辑. 2) 开放-封闭原则(OCP):软件实体(类.模块.函数等等)应该可以扩展,但是不可修改.…
1 工厂方法模式简单介绍 工厂方法 (Factroy Method)模式:又称多态性工厂模式(Polymorphic Factory),在这样的模式中,核心工厂不再是一个详细的类.而是一个抽象工厂,提供详细工厂实现的接口,详细创建产品交由子工厂去做,抽象工厂不涉及不论什么产品被实例化的细节. 而不同等级的产品.就相应一个不同等级的工厂,例如以下图. 1.1工厂方法模式(多态性工厂模式): 工厂方法模式有四个角色: 1. 抽象产品接口 2. 详细产品类 3. 抽象工厂接口 4.详细工厂类. 1.2…
1.工厂模式介绍: 1.1.实现了创建者与调用者的分离 1.2.详细分类: 简单工厂模式 工厂方法模式 抽象工厂模式 1.3.所遵循的OOP原则: 开闭原则:对扩展开放,对修改关闭 依赖倒转原则:面向接口编程 迪米特法则:只与你直接的朋友进行通信,而避免与陌生人进行通信. 1.4.核心本质 实例化对象,不使用new,用工厂方法代替 将调用者与我们的实现类解耦 1.5.三种模式 2.简单工厂模式 2.1.先建立汽车抽象类 package com.xgp.company.第二种_工厂模式.简单工厂模…
题记==============================================================================本php设计模式专辑来源于博客(jymoz.com),现在已经访问不了了,这一系列文章是我找了很久才找到完整的,感谢作者jymoz的辛苦付出哦! 本文地址:http://www.cnblogs.com/davidhhuan/p/4248067.html============================================…
Golang设计模式--简单工厂模式 背景 假设我们在做一款小型翻译软件,软件可以将德语.英语.日语都翻译成目标中文,并显示在前端. 思路 我们会有三个具体的语言翻译结构体,或许以后还有更多,但现在分别是GermanTranslater.EnglishTranslater.JapaneseTranslater,他们都共同实现了一个接口Translator. //翻译接口 type Translator interface { Translate(string) string } //德语翻译类…
一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factory):不利于产生系列产品:2)工厂方法模式(Factory Method):又称为多形性工厂:3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品:             这三种模式从上到下逐步抽象,并且更具一般性.             GOF在<设…
摘自http://blog.csdn.net/jason0539/article/details/23020989 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象. 在这些情况,新对象的建立就是一个 “过程”,不仅是…
以前只是看设计模式,每次看完都去理解一次,并没有手动去写代码,所以理解的还不是很深刻,最近查看框架源码,发现很多地方用到的都是设计模式,因为对设计模式理解的不够深刻,所以源码查看进度很慢!现在决定来温故设计模式 上面是引用大话设计模式的类图以下是java代码,这里为了简洁只写加减法两个. /** * 运算类接口 */ public interface IOperation { public Double getResult(Double numberA, Double numberB); } /…
女娲抟土造人 话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面. 女娲造人,这就是简单工厂模式的应用.  首先,在这个造人的思想里面,有几个重要的角色:女娲本身.抽象的人的概念和女娲所造出的一个个具体的人.    1.)女娲是一个工厂类,也就是简单工厂模式的核心角色. 2.)具休的一个个的人,包括张三,李四等.这些人便是简单工厂模式里面的具体产品角色 3.)抽象的人是最早只存在于女娲的头脑里的一个想法,女娲按照这个想法造出…
简单工厂 + 工厂方法 + 抽象工厂       看了十几篇博客,每篇基本上都能有个自己的解释,我汇总这些内容,重新梳理整理了一番,以形成自己的理解.       简单工厂模式其实不算23种设计模式之一,它是一个非常简化版本的工厂.       本文类图均参考: http://www.cnblogs.com/zhangchenliang/p/3700820.html         这里只有一个工厂对象SimpleFactory,负责创建多个AbstractProduct类型具体产品实例. pu…
简单工厂模式是java设计模式中最简单的设计模式之一: 工厂模式是最常用的设计模式之一. 工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量. 工厂模式主要一般有简单工厂模式,多个工厂模式,静态工厂模式. 首先看简单工厂模式: package com.qcf.test; /** *…
问题提出 Java的工厂模式与现实生活中的工厂的模型是很相似的.工厂是用来做什么?当然是用来生成产品.因此在Java的工厂模式的关键点就是如何描述好产品和工厂这2个角色之间的关系. 下面来仔细描述一下不同的关系以及对应的设计模式 1)单一产品系,工厂只生产一种类型的产品 让我们简单构思一下简单的工厂生产模型,既然只有一个产品,那只需要一个车间就好了,一个车间分别生产三种不同种类的小汽车.好,下面看看简单工厂的设计模式. //定义小汽车接口:ICar.java public interface I…
昨天看了一下设计模式,复习了一下简单工厂模式,做个笔记,浅淡一下我对简单工厂模式的理解.书上使用的是C#,因为我所学的是Java,所以本人就用Java实现了一遍.如果有讲的不对的地方,希望能够指出来.简单工厂设计模式可以简单地理解为,你拿着一个空口袋去水果店买水果,你把空袋子给水果店老板,然后对老板讲我需要一袋子的柚子,十分钟以后.老板递给你一袋子柚子.你不需要知道他们是怎么区分柚子和橘子,又是怎么把柚子装进袋子的.你只需要知道你去了水果店,告诉他你需要一袋柚子. 代码可以简单理解为,水果店,水…
按理说应该把书全都看完一遍,再开始写博客比较科学,会有比较全面的认识. 但是既然都决定要按规律更新博客了,只能看完一个设计模式写一篇了. 也算是逼自己思考了,不是看完就过,至少得把代码自己都敲一遍. 刚开始可能写的比较浅显,更像是读书笔记,只能未来回来完善了. 废话啰嗦到这,开始正题. 文章是以一个面试中,面试官要求写一个计算器开头的. 巧的是,在之前的一次面试中,刚好面试官也问了这个问题,当时我并不能给出令人满意的答案,只恨没有早点学习设计模式啊. 代码不光是要完成功能就完事了,还要考虑健壮性…
原创文章,转载请标注出处:<Java设计模式系列-工厂方法模式> 一.概述 工厂,就是生产产品的地方. 在Java设计模式中使用工厂的概念,那就是生成对象的地方了. 本来直接就能创建的对象为何要增加一个工厂类呢? 这就需要了解工厂方法要解决的是什么问题了,如果只有一个类,我们直接new一个对象完事,这是最简单的:但是如果有多个类呢,而且这些类还需要针对不同的情况来创建不同的对象,这时候就需要工厂了,我们可以在工厂中根据条件来创建具体的对象. 这样一来就将调用方和具体的目标类进行了解耦,调用方根…
这篇博文介绍简单工厂模式,设计模式并不是固定的二十三种,不同的书介绍的可能有出入,这篇介绍的简单工厂模式在有些书上就忽略不介绍了.设计模式是一套被反复使用的.多数人知晓的.经过分类编目的.代码设计经验的总结.从设计模式上的定义可以了解到设计模式的本质,既然是总结出来的,肯定有出入.作为学习设计模式来说,还是把这个也记录下来,能给跟多一些思考. 简单工厂模式是工厂模式的简化版,正因为如此,所以他的使用可以说是非常的普遍,很多代码中都有他的影子.接下来我们剖析简单工厂模式. 不用模式场景     j…
对于java的设计模式,我还是第一次认认真真的总结,以前用的时候都不曾留意细节,现在回头再看只知道该怎么设计,却忘记当时为嘛要用它了, 所以这次就做一个demo来再次复习总结一下,希望从中能学到新体悟.先说说设计模式最重要的一个原则吧,就是开闭原则:意思是对扩展开放,对修改关闭 在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果.所以一句话概括就是:为了使程序的扩展性好,易于维护和升级. 想要达到这样的效果,我们需要使用接口和抽象类等,后面的具体设计中我们会…
除了 new 之外的创建对象的方法 通过 new 创建对象,会使得程序面向实现编程,先举个例子,某个果园里现在有两种水果,一种是苹果,一种是香蕉,有客户想采摘园子里的水果,要求用get()方法表示即可 一般情况下,最直接的写法为: public class Apple { public void get() { System.out.println("得到苹果"); } }   public class Banana { public void get() { System.out.p…
感谢慕课geely老师的设计模式课程,本套设计模式的所有内容均以课程为参考. 前面的软件设计七大原则,目前只有理论这块,因为最近参与项目重构,暂时没有时间把Coding的代码按照设计思路一点点写出来.本周周末会花时间整理出来,然后现在想的是白天更新一点并发编程,晚上回家学习设计模式.非科班出身,脑子也比较笨.博文都是自己根据学习的时候所想的思路,如果能有帮到各位的地方,那十分荣幸.如果有欠缺之处,希望能在评论中指出一起进步.好啦,开始正文了. 本套设计模式的博文,包含各种设计模式的定义.类型.适…
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 1. 为什么要有工厂模式? "Talk is cheap,show me the code". 想要找到这个问题的答案,我们先来看看下面这个项目. 1.1  一个实体类 public class User{ public String username; public String password;} 为了更方便讲述,我尽量让代码精简,方…
最近做项目总是遇到这样或者那样的问题,代码不够简洁,代码可扩展性不够好,耦合度又太高了,导致经常有种想去重构又无从下手的感觉. 无意间翻出了之前买的一本书<大话设计模式>读了一遍,受益匪浅,决定将其中的代码用java来实现一遍,个中精髓自行体会, 此处只做代码的具体实现.^-^ UML图: 模型: 产品基类:Product package com.cnblog.clarck; /** * 产品类 * * @author clarck * */ public class Product { /*…
一.简单工厂模式 简单工厂模式(Simple Factory Pattern)是指由一个工厂对象决定创建出哪一种产品类 的实例.属于创建型模式,但它不属于 GOF,23 种设计模式 (参考资料: http://en.wikipedia.org/wiki/Design_Patterns#Patterns_by_Type). 简单工厂模式适用于的场景: 1.适用 于工厂类负责创建的对象较少的场景,    2.且客户端只需要传入工厂类的参数,对于如何创 建对象的逻辑不需要关心. 简单工厂模式缺点: 1…