- 浏览: 93060 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
Simple Factory模式(又称Static Factory模式),一个Simple Factory生产成品,而对客户端隐藏产品产生的细节。实作时定义一个产品介面(interface),并透过特定静态方法来建立成品。
假设有一个音乐盒工厂,购买音乐盒的客人不用知道音乐盒是如何制作的,他只要知道如何播放音乐盒就可以了,MusicBoxDemo代表了客户的角色,它只依赖于IMusicBox介面,而不关心特定的实作,实际如何产生IMusicBox的实例由MusicBoxFactory完成.
由于客户端只依赖于IMusicBox介面,所以即使您日后改变了createMusicBox()中的实作方式,对客户端是一点影响也没有的。
客户只要面对Factory,客户依赖于产品介面,产品的具体实作是可以与客户隔开的,它们也是可以抽换的。
http://www.riabook.cn/doc/designpattern/
假设有一个音乐盒工厂,购买音乐盒的客人不用知道音乐盒是如何制作的,他只要知道如何播放音乐盒就可以了,MusicBoxDemo代表了客户的角色,它只依赖于IMusicBox介面,而不关心特定的实作,实际如何产生IMusicBox的实例由MusicBoxFactory完成.
IMusicBox.java public interface IMusicBox { public void play(); }
PianoBox.java public class PianoBox implements IMusicBox { public void play() { System.out.println("拨放钢琴音乐:)"); }}
ViolinBox.java public class ViolinBox implements IMusicBox { public void play() { System.out.println("拨放小提琴音乐^_^"); }}
MusicBoxFactory.java public class MusicBoxFactory { public static IMusicBox createMusicBox(String name) throws InstantiationException,IllegalAccessException,ClassNotFoundException { // 这边使用的是Java的Reflection机制来产生实例 // 不过客户端不用管啦 // 以后就算改变了这边的程式,客户端程式是不用更改的 return (IMusicBox) Class.forName(name).newInstance(); }}
MusicBoxDemo.java public class MusicBoxDemo { public static void main(String[] args) throws Exception { playMusicBox(MusicBoxFactory.createMusicBox("PianoBox")); playMusicBox(MusicBoxFactory.createMusicBox("ViolinBox")); } public static void playMusicBox(IMusicBox musicBox) { musicBox.play(); }}
由于客户端只依赖于IMusicBox介面,所以即使您日后改变了createMusicBox()中的实作方式,对客户端是一点影响也没有的。
客户只要面对Factory,客户依赖于产品介面,产品的具体实作是可以与客户隔开的,它们也是可以抽换的。
http://www.riabook.cn/doc/designpattern/
发表评论
-
小项目
2021-03-25 08:52 285小项目源码 -
开发流程参考
2017-09-28 16:19 0软件开发周期流程 -
eclipse svn icon
2017-04-26 16:31 0... -
tomcat 用户角色设置
2017-04-26 15:06 0tomcat-users.xml <role role ... -
linux
2017-02-06 18:17 0shutdown -h now 立马关机 shutdown - ... -
简单框架
2016-11-16 18:14 0简单框架 单机使用 tomcat7热部署 tomcat7:re ... -
tomcat
2016-10-25 14:12 0#!/bin/sh # description: 启动tom ... -
yahoo legal 14
2016-10-14 09:43 311Web应用性能优化黄金法 ... -
事务隔离级别
2016-09-27 17:27 0Read Uncommitted(读取未提交内容) ... -
Docker
2016-08-06 22:07 0http://m.open-open.com/m/lib/vi ... -
eclipse插件link方法
2016-04-09 17:40 0第一步:将各个插件单独防止在相应的插件目录中,目录可以在任何位 ... -
谷歌书签
2016-02-25 16:33 0谷歌书签地址连接 http://www.itnose.net ... -
自己的测试项目
2015-12-28 17:07 0自己的测试项目 -
test
2015-08-03 22:10 01.刷新页面是否调用getuserinfo 2.getuser ... -
内存缓存(in-memory cache)
2013-11-30 11:12 2237缓存原来作用是提高数据库访问性能。但是缓存不是数据库遮羞布,架 ... -
科普知识
2013-11-14 16:52 419密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中 ... -
eclipse
2013-06-17 10:19 576删除工程路径 eclipse\configuration\.s ... -
svn
2013-04-21 14:50 392下载并安装tigris svn server 创建中心库 s ... -
设计论
2012-12-28 11:45 633软件的开发 离不开设计 万不可盲目编写代码 1.在草稿上先思考 ... -
问题查询技巧
2012-12-20 17:15 615eclipse 文件check out搜索会受影响 查不出表 ...
相关推荐
1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。 GOF在《设计模式》一书中将工厂模式分为两类...
DesignPattern 从0开始深入理解设计模式的原理及应用 1.设计原则 1.8.设计原则总结 学习设计原则是学习设计模式的基础。在实际开发过程中, 并不要求所有代码都遵循设计原则,我们要考虑人力、时间、成本、质量...
Java中的`AbstractFactory`、`SimpleFactory`和`FactoryMethod`都是其变体。 3. **抽象工厂模式**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。 4. **建造者模式**:将复杂对象的构建...
在这个名为“DesignPattern”的压缩包中,包含了一个关于简单工厂模式(Simple Factory Pattern)的示例,名为“DesignPattern_SimpleFactoryPattern”。 简单工厂模式的核心思想是将对象的创建过程封装到一个单独...
简单工厂模式(Simple Factory Pattern)是工厂方法模式的一个简化版本,它没有定义工厂接口,只有一个具体工厂类负责创建所有对象。简单工厂模式适用于产品种类较少,且不会频繁改变的情况。 在实际应用中,工厂...
23种设计模式演示代码文件结构图gof23 |- creational(创建型模式) |- simplefactory 简单工厂模式案例 |- factorymethod 工厂方法模式案例 |- abstractfactory 抽象工厂模式案例 |- builder 建造者模式案例 |- ...
在压缩包中的"DesignPattern"文件夹中,你应该能够找到分别展示了这些模式的源代码实现。通过阅读和理解这些示例,你可以学习如何在实际项目中应用观察者模式和工厂模式,以及它们如何帮助提高代码的可读性、可维护...
hello-design-pattern 设计模式学习笔记,此项目参考《大话设计模式》,只能作为入门级设计模式学习 设计原则 职责单一原则 开放-封闭原则 依赖倒转原则 高层模块不依赖底层模块,两个模块都应该依赖抽象。抽象不...
设计模式是软件工程中经过长期实践验证的、解决常见问题的有效解决方案模板,它们代表了在特定上下文中,针对某...在`DesignPattern-master`这个压缩包中,可能包含了这些设计模式的Java实现示例,供学习者参考和实践。
:check_mark:简单工厂模式( Simple Factor Pattern ) :memo: , :check_mark:工厂方法模式( Factory Method Pattern ) :memo: , :check_mark:抽象工厂模式( Abstract Factroy Pattern ) :memo: , :check_...
六个创建型模式 六个创建型模式 简单工厂模式-Simple Factory Pattern 工厂三兄弟之简单工厂模式(一) 工厂三兄弟之简单工厂模式(二) 工厂三兄弟之简单工厂模式(三) 工厂三兄弟之简单工厂模式(四) 工厂方法...
第03章 术业有专攻:简单工厂模式 (SimpleFactory) 第04章 精益求精:工厂方法模式 (FactoryMethod) 第05章 再接再厉:抽象工厂模式 (AbstractFactory) 第06章 孜孜不倦:创建者模式 (Builder) 第07章 照猫画虎:...
简单工厂模式(Simple Factory Pattern):不符合开闭原则,需要修改已有代码来添加新的创建逻辑。 抽象工厂模式(Abstract Factory Pattern):在工厂模式的基础上,提供了一种抽象的创建对象的接口,可以创建多种...
##### 3.1 简单工厂模式 (Simple Factory Pattern) 简单工厂模式提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。该模式适用于当一个系统只需要提供一个产品族中的一个实例时。 1. **工厂...
良葛格的《Design Pattern学习笔记》不仅涵盖了经典的GOF设计模式,还额外介绍了几种多线程模式,这使得这份学习笔记成为了一个宝贵的学习资源。下面将对其中的部分设计模式进行详细介绍。 #### 二、GOF设计模式 ...
This book is fast and simple way to get the idea behind each of the 29 popular design patterns. The book is not tied to any specific programming language and will be good for you as long as you have a...
本资料来源于吕震宇博客,欢迎访问 ...经过整理,方便大家阅读。...C#设计模式(4)-Simple Factory Pattern C#设计模式(3) - 设计原则(2) C#设计模式(2) - 设计原则(1) C#设计模式(1) - 面向对象基本概念复习
Insus.net录制的design Pattern 简单工厂的小影片
【描述】"Simple Factory Design-Pattern for Calculate Salary for VC6 project" 描述了项目的核心设计思想——简单工厂模式。这是一种创建型设计模式,它提供一个创建对象的接口,但允许子类决定实例化哪一个类。...
1. 简单工厂模式(Simple Factory Pattern):也称为静态工厂方法模式,通过一个静态方法来创建对象,该静态方法根据传入的参数返回不同的实例。 2. 工厂方法模式(Factory Method Pattern):属于多态性设计模式,...