- 浏览: 397381 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (244)
- Java (71)
- Javascript/Ajax/JQuery (32)
- Oracle/MysqL/PLSQL/Toad (41)
- Linux (24)
- Struts (6)
- Struts2 (4)
- Spring (2)
- Hibernate (1)
- iBATIS (1)
- CSS (1)
- 计算机硬件 (1)
- 收藏 (3)
- Project Management (1)
- 自考-复旦计算机信息管理 (0)
- Intellij IDEA (10)
- PS (1)
- Thinker (5)
- IT Life (22)
- joke (1)
- weblogic (3)
- Ubuntu (4)
- webservice (1)
- Test (1)
- 证券市场基本知识 (4)
- dwr (1)
- 系统操作 (4)
- MS Office (2)
- 多线程 (1)
- Eclipse/MyEclipse (2)
- 金融基本知识 (6)
- Tomcat (8)
- others (5)
- 操作系统 (9)
- PMP (2)
- 售前顾问 (1)
- oracle (0)
- 系统部署 (1)
最新评论
-
麦田里的阳光:
软件下载:http://xiazai.beyondcompar ...
BeyondCompare超强插件! -
xujq:
学习了, 谢谢.一直在用BeyondCompare, 今天突然 ...
BeyondCompare超强插件! -
wujianmin577:
直接用第三个rar效果很好
Intellij idea11破解包 注册机 -
Gosi_:
这样压缩在windows平台上中文文件名会乱码!不知道到博主有 ...
使用Ant的工具类,把目录压缩成zip -
osacar:
能破12版的不?
Intellij idea11破解包 注册机
简单工厂模式
1. 目的
工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。
2 . 简单工厂模式的结构
3. 一个简单例子
java 代码
1.// 产品接口
2.public interface Product {
3.
4. public void getName();
5.
6.}
7.
8.// 具体产品A
9.public class ProductA implements Product {
10.
11. public void getName() {
12. System.out.println(" I am ProductA ");
13. }
14.
15.}
16.
17.// 具体产品B
18.public class ProductB implements Product {
19.
20. public void getName() {
21. System.out.println(" I am ProductB ");
22. }
23.
24.}
25.
26.// 工厂类
27.public class ProductCreator {
28.
29. public Product createProduct(String type) {
30. if (" A ".equals(type)) {
31. return new ProductA();
32. }
33. if (" B ".equals(type)) {
34. return new ProductB();
35. } else
36. return null;
37. }
38.
39. public static void main(String[] args) {
40. ProductCreator creator = new ProductCreator();
41. creator.createProduct(" A ").getName();
42. creator.createProduct(" B ").getName();
43. }
44.}
4. 小结工厂模式的适用范围
• 在编码时不能预见需要创建哪一种类的实例。
• 一个类使用它的子类来创建对象。
• 开发人员不希望创建了哪个类的实例以及如何创建实例的信息暴露给外部程序。
抽象工厂模式
1. 抽象工厂模式可以说是简单工厂模式的扩展,它们主要的区别在于需要创建对象的复杂程度上。
在抽象工厂模式中,抽象产品可能是一个或多个,从而构成一个或多个产品族。 在只有一个产品族的情况下,抽象工厂模式实际上退化到工厂方法模式。
2. 抽象工厂模式的结构
3. 一个简单例子
java 代码
1.// 产品 Plant接口
2.public interface Plant {
3.}
4.
5.// 具体产品PlantA,PlantB
6.public class PlantA implements Plant {
7.
8. public PlantA() {
9. System.out.println(" create PlantA ! ");
10. }
11.
12. public void doSomething() {
13. System.out.println(" PlantA do something ");
14. }
15.}
16.
17.public class PlantB implements Plant {
18. public PlantB() {
19. System.out.println(" create PlantB ! ");
20. }
21.
22. public void doSomething() {
23. System.out.println(" PlantB do something ");
24. }
25.}
26.
27.// 产品 Fruit接口
28.public interface Fruit {
29.}
30.
31.// 具体产品FruitA,FruitB
32.public class FruitA implements Fruit {
33. public FruitA() {
34. System.out.println(" create FruitA ! ");
35. }
36.
37. public void doSomething() {
38. System.out.println(" FruitA do something ");
39. }
40.}
41.
42.public class FruitB implements Fruit {
43. public FruitB() {
44. System.out.println(" create FruitB ! ");
45. }
46.
47. public void doSomething() {
48. System.out.println(" FruitB do something ");
49. }
50.}
51.
52.// 抽象工厂方法
53.public interface AbstractFactory {
54. public Plant createPlant();
55.
56. public Fruit createFruit();
57.}
58.
59.// 具体工厂方法
60.public class FactoryA implements AbstractFactory {
61. public Plant createPlant() {
62. return new PlantA();
63. }
64.
65. public Fruit createFruit() {
66. return new FruitA();
67. }
68.}
69.
70.public class FactoryB implements AbstractFactory {
71. public Plant createPlant() {
72. return new PlantB();
73. }
74.
75. public Fruit createFruit() {
76. return new FruitB();
77. }
78.}
4. 小结
在以下情况下,应当考虑使用抽象工厂模式。
首先,一个系统应当不依赖于产品类实例被创立,组成,和表示的细节。这对于所有形态的工厂模式都是重要的。
其次,这个系统的产品有多于一个的产品族。
第三,同属于同一个产品族的产品是设计成在一起使用的。这一约束必须得在系统的设计中体现出来。
最后,不同的产品以一系列的接口的面貌出现,从而使系统不依赖于接口实现的细节。
其中第二丶第三个条件是我们选用抽象工厂模式而非其它形态的工厂模式的关键性条件。
1. 目的
工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。
2 . 简单工厂模式的结构
![](http://zhupan.iteye.com/upload/picture/pic/2305/0e1d5f00-1c49-4e5f-9c2c-986d989217bd.gif)
3. 一个简单例子
java 代码
1.// 产品接口
2.public interface Product {
3.
4. public void getName();
5.
6.}
7.
8.// 具体产品A
9.public class ProductA implements Product {
10.
11. public void getName() {
12. System.out.println(" I am ProductA ");
13. }
14.
15.}
16.
17.// 具体产品B
18.public class ProductB implements Product {
19.
20. public void getName() {
21. System.out.println(" I am ProductB ");
22. }
23.
24.}
25.
26.// 工厂类
27.public class ProductCreator {
28.
29. public Product createProduct(String type) {
30. if (" A ".equals(type)) {
31. return new ProductA();
32. }
33. if (" B ".equals(type)) {
34. return new ProductB();
35. } else
36. return null;
37. }
38.
39. public static void main(String[] args) {
40. ProductCreator creator = new ProductCreator();
41. creator.createProduct(" A ").getName();
42. creator.createProduct(" B ").getName();
43. }
44.}
4. 小结工厂模式的适用范围
• 在编码时不能预见需要创建哪一种类的实例。
• 一个类使用它的子类来创建对象。
• 开发人员不希望创建了哪个类的实例以及如何创建实例的信息暴露给外部程序。
抽象工厂模式
1. 抽象工厂模式可以说是简单工厂模式的扩展,它们主要的区别在于需要创建对象的复杂程度上。
在抽象工厂模式中,抽象产品可能是一个或多个,从而构成一个或多个产品族。 在只有一个产品族的情况下,抽象工厂模式实际上退化到工厂方法模式。
2. 抽象工厂模式的结构
![](http://zhupan.iteye.com/upload/picture/pic/2304/aa2dfa0b-cd37-4bfc-a411-dd75ee60ab5f.gif)
3. 一个简单例子
java 代码
1.// 产品 Plant接口
2.public interface Plant {
3.}
4.
5.// 具体产品PlantA,PlantB
6.public class PlantA implements Plant {
7.
8. public PlantA() {
9. System.out.println(" create PlantA ! ");
10. }
11.
12. public void doSomething() {
13. System.out.println(" PlantA do something ");
14. }
15.}
16.
17.public class PlantB implements Plant {
18. public PlantB() {
19. System.out.println(" create PlantB ! ");
20. }
21.
22. public void doSomething() {
23. System.out.println(" PlantB do something ");
24. }
25.}
26.
27.// 产品 Fruit接口
28.public interface Fruit {
29.}
30.
31.// 具体产品FruitA,FruitB
32.public class FruitA implements Fruit {
33. public FruitA() {
34. System.out.println(" create FruitA ! ");
35. }
36.
37. public void doSomething() {
38. System.out.println(" FruitA do something ");
39. }
40.}
41.
42.public class FruitB implements Fruit {
43. public FruitB() {
44. System.out.println(" create FruitB ! ");
45. }
46.
47. public void doSomething() {
48. System.out.println(" FruitB do something ");
49. }
50.}
51.
52.// 抽象工厂方法
53.public interface AbstractFactory {
54. public Plant createPlant();
55.
56. public Fruit createFruit();
57.}
58.
59.// 具体工厂方法
60.public class FactoryA implements AbstractFactory {
61. public Plant createPlant() {
62. return new PlantA();
63. }
64.
65. public Fruit createFruit() {
66. return new FruitA();
67. }
68.}
69.
70.public class FactoryB implements AbstractFactory {
71. public Plant createPlant() {
72. return new PlantB();
73. }
74.
75. public Fruit createFruit() {
76. return new FruitB();
77. }
78.}
4. 小结
在以下情况下,应当考虑使用抽象工厂模式。
首先,一个系统应当不依赖于产品类实例被创立,组成,和表示的细节。这对于所有形态的工厂模式都是重要的。
其次,这个系统的产品有多于一个的产品族。
第三,同属于同一个产品族的产品是设计成在一起使用的。这一约束必须得在系统的设计中体现出来。
最后,不同的产品以一系列的接口的面貌出现,从而使系统不依赖于接口实现的细节。
其中第二丶第三个条件是我们选用抽象工厂模式而非其它形态的工厂模式的关键性条件。
发表评论
-
Tomcat无响应问题定位流程
2017-06-06 14:31 24071、apache 死机,apache无法连接tomcat, ... -
双机热备和负载均衡有什么区别
2016-12-14 14:47 1509什么是双机热备? ... -
启动tomcat时清除catalina下的缓冲文件
2014-11-21 10:03 558tomcat\bin\startup.bat的最前面加上如下 ... -
idea13远程服务器TOMCAT调试
2014-11-17 16:25 603idea13远程服务器TOMCAT调试 详细见附件文档! ... -
Intellij IDEA 13 发布了,关键是keygens也出来了!
2013-12-05 12:30 1680https://sskaje.me/sskaje/keygen ... -
BeyondCompare超强插件!
2013-09-05 13:34 8123BC3已经出来很长时间了,比较文件差异用起来很方便。但却不知道 ... -
jprofile 性能调优
2013-08-28 15:48 842jprofile 性能调优 参考:http://blog.16 ... -
java IO流
2013-08-19 14:58 664InputStream OutPutStream Reader ... -
java获取当前时间精确到毫秒
2013-08-07 15:11 8292方法1: new SimpleDateFormat(&q ... -
404、500、502等HTTP状态码介绍
2013-07-09 11:06 636基本涵盖了所有问题 HTTP 400 – 请求无效 HTTP ... -
jvm原理(待整理)
2013-06-17 09:49 1167用自己的话总结一下jvm的工作原理: 1.java对象都 ... -
request.getParameter()、request.getAttribute()的区别
2013-06-03 13:58 11191.getAttribute是取得jsp中 ... -
注册码
2013-06-02 21:58 1103PLSQL Developer V10 注册码 L ... -
IDEA编码GBK不可映射字符解决方法
2013-05-23 15:01 1817RT,内容见附件! -
startup.bat:自动删除work\Catalina中内容
2013-05-23 11:18 642rem 自动删除work\Catalina中内容 rd / ... -
HTTP/1.1与HTTP/1.0的区别
2013-05-08 21:40 3606HTTP/1.1与HTTP/1.0的区别 下面主要 ... -
JVM调优总结 -Xms -Xmx -Xmn -Xss
2013-04-17 11:06 978堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统 ... -
Tomcat 7的七大新特性
2013-04-07 10:35 1025TOMCAT 7新特性 1 使用随机数去防止跨站脚本 ... -
struts的action是否线程安全?
2013-03-24 23:14 779action到底是thread safe还是unsafe呢 我 ... -
ASCII表
2013-03-22 10:57 849Dec Hex 0 0 NUL 1 1 SOH ...
相关推荐
3. Qt工厂模式工程 4. Qt工厂模式例程 5. Qt工厂模式例子 6. 简单工厂模式 部分源码实例: // 奔驰工厂 class BenzFactory : public AFactory { public: ICar* CreateCar() { return new BenzCar(); } }; // ...
工厂模式,也称为工程模式或调试模式,是制造商为了测试和调整设备功能而设置的一种特殊模式。在这个模式下,用户可以访问和修改通常隐藏的高级设置,包括地图数据、系统参数以及硬件诊断。下面我们将详细介绍如何...
工厂模式是一种常用的软件设计模式,它是创建型设计模式的一种,主要解决对象的创建问题,将对象的创建过程封装起来,使得创建过程独立于使用过程。这样可以提高代码的可复用性和灵活性,同时降低了系统的耦合度。...
**简单工厂模式**是软件设计模式中的一种,属于创建型模式。在Java编程中,它是一种用于创建对象的简便方法,将对象的实例化过程封装到一个单独的工厂类中,使得客户端代码无需直接调用具体类的构造函数,而是通过...
- 关机状态下,同时按住“音量-”和“电源”键,屏幕亮起后松开,一般会进入工程模式,从中可以选择工厂模式。 4. MediaTek(联发科)机芯: - 长按遥控器的“设置”和“返回”键,开机后会进入工程模式,选择相应...
其中,"工程模式"是一个特殊的功能,通常隐藏在系统深处,主要用于制造商进行硬件测试和调试。对于用户而言,进入工程模式可以获取更多关于手机硬件的信息,进行高级设置,甚至解决一些特定问题。本篇文章将详细介绍...
在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...
测试机型:32m3095(其它机型未试,大同小异,自行测试) 测试时间:2022.06.15 进入酒店模式好处:可以设置...进入工厂模式好处:可以设置不正常的颜色,声音。恢复系统默认设置。好多功能,是英文的,我看不懂。
【进入Moto Z1工程模式的方法】 Moto Z1是一款由摩托罗拉公司推出的CDMA机型,其工程模式是为专业技术人员和高级用户设计的特殊功能区,可以用来进行设备诊断、硬件测试以及一些系统级别的调整。以下是两种进入Moto...
根据提供的文档内容,本文将详细解释乐华板卡如何进入工程模式的方法,主要涉及Novatek和Realtek两种方案下的具体操作步骤。 ### 一、Novatek方案进特殊模式方法 #### 1. 板卡型号:PT系列 **1.1 工厂菜单** - *...
本文详细讲解了长虹LED39C2080i智能电视的工程模式,包括如何进入工程模式、工程模式的作用、工程模式菜单索引详解等内容。 一、如何进入工程模式: 要进入工程模式,需要遥控器按“节目源”出来节目源选择菜单,...
进入凯立德 工程模式 的方法 在“查找”菜单中切换到“123”输入法,输入*147#即可进入工程模式
"设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...
在软件工程中,设计模式是解决常见问题的模板或最佳实践。工厂模式是其中最常用的一种,它提供了创建对象的最佳方式。在这个压缩包中,包含了三种工厂模式的C++实现:简单工厂模式、工厂方法模式以及抽象工厂模式。...
以下是关于JAVA设计模式中提及的四种模式——工厂模式、代理模式、迭代器模式以及责任链模式的详细说明。 1. **工厂模式**:工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当创建...
"C++设计模式-工程模式"这个标题暗示我们将深入探讨C++中的一种核心设计模式——工厂模式。工厂模式是创建型设计模式,它提供了一种创建对象的最佳方式,允许我们在不指定具体类的情况下创建对象。在描述中提到的...
本文将探讨三个重要的设计模式:抽象工厂模式、工厂方法模式以及策略模式,并结合一个实际的场景——手机加工厂,来具体阐述它们的应用。 首先,我们来看**抽象工厂模式**。这个模式主要用于创建相关或依赖对象的...
《工厂模式源代码》 工厂模式是软件设计模式中的一种,属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,当我们创建对象时,不会直接实例化具体的产品类,而是通过一个共同的接口或者抽象类,即工厂...
工厂方法模式和抽象工厂模式是两种常见的设计模式,它们都属于创建型模式,用于解决对象的创建问题。在软件设计中,这两种模式都是用来隔离对象的创建和使用,以提高系统的灵活性和可扩展性。 首先,工厂方法模式的...
在软件设计模式中,工厂模式是一种非常常用的行为型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码不直接创建对象,而是通过一个工厂类来负责对象的创建。这样可以使得系统更具可扩展性和可维护性。...