- 浏览: 863361 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
yukang1:
蚂蚁lovejing 写道我也出现与楼上相同的问题。查了一些资 ...
Spring中实现文件上传 -
史玉凤:
必须用ie浏览器
javascript获取客户端网卡MAC地址和IP地址和计算机名 -
蚂蚁lovejing:
我也出现与楼上相同的问题。查了一些资料,描述的跟楼主的博文差不 ...
Spring中实现文件上传 -
温柔一刀:
djlijian 写道最近也在研究redis,如何在项目中使用 ...
Redis 常见的性能问题和解决方法 -
djlijian:
最近也在研究redis,如何在项目中使用呢?感觉网上的资料太少 ...
Redis 常见的性能问题和解决方法
简单工厂模式
1. 目的
工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。
2 . 简单工厂模式的结构
3. 一个简单例子
java 代码
- // 产品接口
- public interface Product {
- public void getName();
- }
- // 具体产品A
- public class ProductA implements Product {
- public void getName() {
- System.out.println(" I am ProductA ");
- }
- }
- // 具体产品B
- public class ProductB implements Product {
- public void getName() {
- System.out.println(" I am ProductB ");
- }
- }
- // 工厂类
- public class ProductCreator {
- public Product createProduct(String type) {
- if (" A ".equals(type)) {
- return new ProductA();
- }
- if (" B ".equals(type)) {
- return new ProductB();
- } else
- return null;
- }
- public static void main(String[] args) {
- ProductCreator creator = new ProductCreator();
- creator.createProduct(" A ").getName();
- creator.createProduct(" B ").getName();
- }
- }
• 在编码时不能预见需要创建哪一种类的实例。
• 一个类使用它的子类来创建对象。
• 开发人员不希望创建了哪个类的实例以及如何创建实例的信息暴露给外部程序。
抽象工厂模式
1. 抽象工厂模式可以说是简单工厂模式的扩展,它们主要的区别在于需要创建对象的复杂程度上。
在抽象工厂模式中,抽象产品可能是一个或多个,从而构成一个或多个产品族。 在只有一个产品族的情况下,抽象工厂模式实际上退化到工厂方法模式。
2. 抽象工厂模式的结构
3. 一个简单例子
java 代码
- // 产品 Plant接口
- public interface Plant {
- }
- // 具体产品PlantA,PlantB
- public class PlantA implements Plant {
- public PlantA() {
- System.out.println(" create PlantA ! ");
- }
- public void doSomething() {
- System.out.println(" PlantA do something ");
- }
- }
- public class PlantB implements Plant {
- public PlantB() {
- System.out.println(" create PlantB ! ");
- }
- public void doSomething() {
- System.out.println(" PlantB do something ");
- }
- }
- // 产品 Fruit接口
- public interface Fruit {
- }
- // 具体产品FruitA,FruitB
- public class FruitA implements Fruit {
- public FruitA() {
- System.out.println(" create FruitA ! ");
- }
- public void doSomething() {
- System.out.println(" FruitA do something ");
- }
- }
- public class FruitB implements Fruit {
- public FruitB() {
- System.out.println(" create FruitB ! ");
- }
- public void doSomething() {
- System.out.println(" FruitB do something ");
- }
- }
- // 抽象工厂方法
- public interface AbstractFactory {
- public Plant createPlant();
- public Fruit createFruit();
- }
- // 具体工厂方法
- public class FactoryA implements AbstractFactory {
- public Plant createPlant() {
- return new PlantA();
- }
- public Fruit createFruit() {
- return new FruitA();
- }
- }
- public class FactoryB implements AbstractFactory {
- public Plant createPlant() {
- return new PlantB();
- }
- public Fruit createFruit() {
- return new FruitB();
- }
- }
在以下情况下,应当考虑使用抽象工厂模式。
首先,一个系统应当不依赖于产品类实例被创立,组成,和表示的细节。这对于所有形态的工厂模式都是重要的。
其次,这个系统的产品有多于一个的产品族。
第三,同属于同一个产品族的产品是设计成在一起使用的。这一约束必须得在系统的设计中体现出来。
最后,不同的产品以一系列的接口的面貌出现,从而使系统不依赖于接口实现的细节。
其中第二丶第三个条件是我们选用抽象工厂模式而非其它形态的工厂模式的关键性条件。
发表评论
-
Spring Integration 1.0 发布
2008-11-20 14:34 2137终于迎来了spring integration的第一个fina ... -
When To Use Mock Objects?
2008-06-10 10:18 1614The real object has nondeterm ... -
JACOB发送传真
2008-03-21 19:46 3827JACOB一个JAva-COM中间件.通过这个组件你可以在Ja ... -
IDEA快捷键
2007-04-30 12:16 5583最常用快捷键 1.Ctrl+E,可以显示最近编辑的文件列表 2 ... -
Ant+Tomcat自动部署的小问题
2007-02-14 18:00 8445今天用Ant对dms系统进行Tomcat的自动部署。 通过a ... -
FCKeditor-2.3在线编辑器,可以直接用的(java版)
2007-02-12 12:11 39460初次使用FCKeditor编辑器, 在网上搜索了半天也没有找 ... -
Java是剑客-飘逸;.NET是刀客-霸道
2006-12-26 19:17 4967网上看到的一篇 ... -
常用到的Eclipse快捷键
2006-11-11 12:13 3403Ctrl+s 存盘 Ctrl+/ ... -
java操作Excel、PDF文件
2006-10-09 16:41 36299下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是 ... -
通过SCJP考试,说点体会和感受
2006-04-25 18:58 4889我就随便说说哈,不认可的朋友就当没有看见哈! 1、首先声明下 ... -
使用smartupload进行文件的上传下载
2006-06-07 23:30 5310jspSmartUpload是由www.jspsmart.co ... -
log4j的配置文件例子
2006-07-09 04:27 3027log4j的配置文件例子,非常方便的一个开源日志软件,一直用它 ... -
javaBean数据库连接池
2006-07-09 04:35 2730实现简单的数据库连接池: java 代码 / ... -
用java实现浮点数的精确计算
2006-07-13 22:28 2920问题的提出: 如果我们编译运行下面这个程序会看到什么? j ... -
61条面向对象设计的经验原则
2006-07-13 22:51 1858(1)所有数据都应该隐藏在所在的类的内部。 (2)类的使用者必 ... -
追MM与java的32种模式
2006-07-13 22:55 1840创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当 ... -
OO的五大原则
2006-07-14 19:25 4761OO的五大原则是指SRP ... -
JAVA系列之对象的序列化与反序列化
2006-07-17 09:09 178371 简介 对象序列化(Seria ... -
java获取服务器端网卡地址
2006-08-08 19:43 4304java 代码 package com.ctgu ... -
基于Java的IDEA加密算法探讨
2006-08-08 20:07 2135摘要:本文介绍了在JAVA环境下如何实现IDEA对称加密算法。 ...
相关推荐
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 工厂菜单** - *...
进入凯立德 工程模式 的方法 在“查找”菜单中切换到“123”输入法,输入*147#即可进入工程模式
"设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...
在软件工程中,设计模式是解决常见问题的模板或最佳实践。工厂模式是其中最常用的一种,它提供了创建对象的最佳方式。在这个压缩包中,包含了三种工厂模式的C++实现:简单工厂模式、工厂方法模式以及抽象工厂模式。...
以下是关于JAVA设计模式中提及的四种模式——工厂模式、代理模式、迭代器模式以及责任链模式的详细说明。 1. **工厂模式**:工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当创建...
"C++设计模式-工程模式"这个标题暗示我们将深入探讨C++中的一种核心设计模式——工厂模式。工厂模式是创建型设计模式,它提供了一种创建对象的最佳方式,允许我们在不指定具体类的情况下创建对象。在描述中提到的...
本文将探讨三个重要的设计模式:抽象工厂模式、工厂方法模式以及策略模式,并结合一个实际的场景——手机加工厂,来具体阐述它们的应用。 首先,我们来看**抽象工厂模式**。这个模式主要用于创建相关或依赖对象的...
《工厂模式源代码》 工厂模式是软件设计模式中的一种,属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,当我们创建对象时,不会直接实例化具体的产品类,而是通过一个共同的接口或者抽象类,即工厂...
工厂方法模式和抽象工厂模式是两种常见的设计模式,它们都属于创建型模式,用于解决对象的创建问题。在软件设计中,这两种模式都是用来隔离对象的创建和使用,以提高系统的灵活性和可扩展性。 首先,工厂方法模式的...
在软件设计模式中,工厂模式是一种非常常用的行为型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码不直接创建对象,而是通过一个工厂类来负责对象的创建。这样可以使得系统更具可扩展性和可维护性。...
工厂模式是一种设计模式,它是创建型模式的一种,主要用于在代码中抽象出对象的创建过程,使得创建对象的过程与具体的实现分离,从而提高了代码的可扩展性和可维护性。在这个"工厂模式(2016手机案例)"中,我们将...