- 浏览: 428525 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (170)
- java (77)
- javascript (5)
- jsp (1)
- servlet (6)
- struts (8)
- hibernate (3)
- spring (4)
- ajax (5)
- jquery (3)
- apache cxf (0)
- ext.js (1)
- hadoop (0)
- android (0)
- html5 (2)
- linux (5)
- flex (1)
- tomcat (1)
- jboss (0)
- nginx (0)
- mysql (16)
- sql server (3)
- oracle (4)
- div+css (0)
- mybatis (4)
- design patterns (22)
- xml (2)
- postgresql (3)
- velocity (1)
- freemarker (1)
- kendo-ui (2)
- ibatis (1)
- socket (1)
- C and C++ (1)
- C# (2)
- 程序设计----算法 (0)
- jersey (1)
- dd (0)
- perl (1)
- shell (0)
最新评论
-
书策稠浊:
兄弟,这tm是Java?
java调用百度地图和谷歌地图 -
fengyunlouyanyu:
jquery----删除指定id的div下的img -
yangjianzhouctgu:
Neoman 写道hi,我看你引入了kendo.web.min ...
kendo-ui中kendoGrid的用法 -
Neoman:
hi,我看你引入了kendo.web.min.js 这个js, ...
kendo-ui中kendoGrid的用法 -
yangjianzhouctgu:
llscp 写道这是JS吧...对的呀
java调用百度地图和谷歌地图
Human.java代码如下:
package com.designPattern.abstractfactory; public interface Human { public void laugh(); public void cry(); public void talk(); public void sex(); }
AbstractBlackHuman.java代码如下:
package com.designPattern.abstractfactory; public abstract class AbstractBlackHuman implements Human { public void cry(){ System.out.println("黑色人种会哭!"); } public void laugh(){ System.out.println("黑色人种会笑!"); } public void talk(){ System.out.println("黑色人种在聊天!"); } }
AbstractWhiteHuman.java代码如下:
package com.designPattern.abstractfactory; public abstract class AbstractWhiteHuman implements Human{ public void cry(){ System.out.println("白色人种会哭!"); } public void laugh(){ System.out.println("白色人种会笑!"); } public void talk(){ System.out.println("白色人种在聊天!"); } }
AbstractYellowHuman.java代码如下:
package com.designPattern.abstractfactory; public abstract class AbstractYellowHuman implements Human{ public void cry(){ System.out.println("黄色人种会哭!"); } public void laugh(){ System.out.println("黄色人种会笑!"); } public void talk(){ System.out.println("黄色人种在聊天!"); } }
BlackFemaleHuman.java代码如下:
package com.designPattern.abstractfactory; public class BlackFemaleHuman extends AbstractWhiteHuman{ public void sex(){ System.out.println("该黑种人的性别为女性!"); } }
BlackMaleHuman.java代码如下:
package com.designPattern.abstractfactory; public class BlackMaleHuman extends AbstractWhiteHuman{ public void sex(){ System.out.println("该黑种人的性别为男性!"); } }
WhiteFemaleHuman.java代码如下:
package com.designPattern.abstractfactory; public class WhiteFemaleHuman extends AbstractWhiteHuman{ public void sex(){ System.out.println("该白种人的性别为女性!"); } }
WhiteMaleHuman.java代码如下:
package com.designPattern.abstractfactory; public class WhiteMaleHuman extends AbstractWhiteHuman{ public void sex(){ System.out.println("该白种人的性别为男性!"); } }
YellowFemaleHuman.java代码如下:
package com.designPattern.abstractfactory; public class YellowFemaleHuman extends AbstractYellowHuman{ public void sex(){ System.out.println("该黄种人的性别为女性!"); } }
YellowMaleHuman.java代码如下:
package com.designPattern.abstractfactory; public class YellowMaleHuman extends AbstractYellowHuman{ public void sex(){ System.out.println("该黄种人的性别为男性!"); } }
HumanEnum.java代码如下:
package com.designPattern.abstractfactory; public enum HumanEnum { YellowMaleHuman("com.designPattern.abstractfactoryMethod.YellowMaleHuman"), YellowFemaleHuman("com.designPattern.abstractfactoryMethod.YellowFemaleHuman"), WhiteMaleHuman("com.designPattern.abstractfactoryMethod.WhiteMaleHuman"), WhiteFemaleHuman("com.designPattern.abstractfactoryMethod.WhiteFemaleHuman"), BlackMaleHuman("com.designPattern.abstractfactoryMethod.BlackMaleHuman"), BlackFemaleHuman("com.designPattern.abstractfactoryMethod.BlackFemaleHuman"); private String value = ""; private HumanEnum(String value){ this.value = value; } public String getValue(){ return this.value; } }
HumanFactory.java代码如下:
package com.designPattern.abstractfactory; public interface HumanFactory { public Human createYellowHuman(); public Human createWhiteHuman(); public Human createBlackHuman(); }
AbstractHumanFactory.java代码如下:
package com.designPattern.abstractfactory; public abstract class AbstractHumanFactory implements HumanFactory{ protected Human createHuman(HumanEnum humanEnum){ Human human = null; if(!humanEnum.getValue().equals("")){ try{ human = (Human)Class.forName(humanEnum.getValue()).newInstance(); }catch(Exception e){ e.printStackTrace(); } } return human; } }
FemaleHumanFactory.java代码如下:
package com.designPattern.abstractfactory; public class FemaleHumanFactory extends AbstractHumanFactory{ @Override public Human createYellowHuman() { return super.createHuman(HumanEnum.YellowFemaleHuman); } @Override public Human createWhiteHuman() { return super.createHuman(HumanEnum.WhiteFemaleHuman); } @Override public Human createBlackHuman() { return super.createHuman(HumanEnum.BlackFemaleHuman); } }
MaleHumanFactory.java代码如下:
package com.designPattern.abstractfactory; public class MaleHumanFactory extends AbstractHumanFactory{ @Override public Human createYellowHuman() { return super.createHuman(HumanEnum.YellowMaleHuman); } @Override public Human createWhiteHuman() { return super.createHuman(HumanEnum.WhiteMaleHuman); } @Override public Human createBlackHuman() { return super.createHuman(HumanEnum.BlackMaleHuman); } }
NvWa.java代码如下:
package com.designPattern.abstractfactory; public class NvWa { public static void main(String[] args) { HumanFactory maleHumanFactory = new MaleHumanFactory(); HumanFactory femaleHumanFactory = new FemaleHumanFactory(); Human maleYellowHuman = maleHumanFactory.createYellowHuman(); Human femaleYellowHuman = femaleHumanFactory.createYellowHuman(); maleYellowHuman.cry(); maleYellowHuman.laugh(); maleYellowHuman.talk(); maleYellowHuman.sex(); femaleYellowHuman.cry(); femaleYellowHuman.laugh(); femaleYellowHuman.talk(); femaleYellowHuman.sex(); } }
运行结果如下:
黄色人种会哭! 黄色人种会笑! 黄色人种在聊天! 该黄种人的性别为男性! 黄色人种会哭! 黄色人种会笑! 黄色人种在聊天! 该黄种人的性别为女性!
发表评论
-
设计模式----中介者模式(demiator pattern)
2013-07-21 22:55 932AbstractMediator.java代码如下: pa ... -
设计模式----原型模式(prototype pattern)
2013-07-21 22:51 638AdvTemplate.java代码如下: package ... -
设计模式----状态模式(state pattern)
2013-07-21 22:48 1204LiftState.java代码如下: package ... -
设计模式----访问者模式(visitor pattern)
2013-07-21 22:44 973IVisitor.java代码如下: package co ... -
设计模式----观察者模式(observer)
2013-07-20 19:53 1071这里采用两种方式实现观察者模式:第一种方式为完全自己写, ... -
设计模式----组合模式(composite)
2013-07-20 16:13 929该设计模式是以公司的组织结构为背景的 Crop.java代码 ... -
设计模式----迭代器模式(Iterator)
2013-07-20 15:59 917IProject.java代码如下: package co ... -
设计模式----装饰者模式(decorator pattern)
2013-07-15 09:08 1027SchoolReport.java代码如下: packag ... -
设计模式----命令模式(command pattern)
2013-07-15 09:09 956Group.java代码如下: pa ... -
设计模式----桥梁模式(bridge pattern)
2013-07-14 22:21 1182Product.java代码如下: package com ... -
设计模式----模板方法模式(template method pattern)
2013-07-14 17:00 1147HummerModel.java代码如下: packag ... -
设计模式----适配器模式(adapter)
2013-07-14 13:37 865IUserInfo.java代码如下: package c ... -
设计模式----门面模式(facade)
2013-07-14 13:30 946LetterProcess.java代码如下 ... -
设计模式----工厂方法模式(factory method pattern)
2013-07-10 22:19 1081给定一个工厂类,用这个工厂类造出一堆对象来,这些对象对应的类实 ... -
设计模式----多例模式(Multition)
2013-07-02 22:47 1033Emperor.java 代码如下: ... -
设计模式----单例模式(singleton)
2013-06-30 22:17 757单例就是唯一的意思。 第一种单例实现方式(在多线程环境中存在 ... -
设计模式----代理模式(proxy)
2013-06-30 22:02 960代理模式主要使用了java ... -
设计模式----策略模式(strategy)
2013-06-29 22:17 1088本文参考别人设计模式的一个例子。 关于诸葛亮的三个锦囊妙计的 ... -
装饰着模式(decorator)
2012-09-09 21:51 1008一下代码就是运用了装饰者模式: package com.ba ... -
观察者模式(observer)
2012-09-09 19:36 943设计模式中观察者模式的实现有很多方式,这里列出两种实现方式 1 ...
相关推荐
抽象工厂模式是设计模式中的一种创建型模式,其主要目的是为了解耦客户端代码与具体产品的实现。在软件工程中,当系统需要根据不同的平台、环境或者配置产生一系列相关对象,而这些对象之间的关系又非常复杂时,抽象...
### 抽象工厂模式(Abstract Factory Pattern) #### 引入 在探讨抽象工厂模式之前,我们先回顾一下之前介绍过的简单工厂模式与工厂方法模式。这两种模式主要关注于解决对象创建过程中“new”操作的问题,使得创建...
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它通过定义一个创建对象的接口来创建对象,但将具体实现的决定留给子类来决定。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式...
今天,我要为大家介绍的是Java中的抽象工厂模式,这是一种非常实用的设计模式,让我们一起来探索它的魅力吧! 内容概要 本文将从以下几个方面详细介绍Java抽象工厂模式: 抽象工厂模式的应用场景。 抽象工厂模式...
**抽象工厂模式(Abstract Factory Pattern)**是一种创建型设计模式,它提供了一种创建对象族的接口,而无需指定它们的具体类。这种模式是当一个系统需要根据不同的平台或者环境来创建一组相关或相互依赖的对象时,...
**抽象工厂模式(Abstract Factory Pattern)是创建型设计模式之一,它提供了一种创建对象的接口,使得子类可以决定实例化哪一个类。这种类型的设计模式属于类的创建模式。** 在C#中,抽象工厂模式的核心在于抽象...
此外,抽象工厂模式还可以与其他设计模式结合使用,比如工厂方法模式(Factory Method Pattern),在某些情况下,可以将抽象工厂模式的抽象工厂类设计为工厂方法模式,让子类决定实例化哪一个类。同时,抽象工厂模式...
抽象工厂模式是设计模式中的一种创建型模式,它提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。这种模式的关键在于抽象工厂,它定义了一组创建对象的接口,允许子类决定实例化哪一个类。...
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种创建对象集合的接口,而无需指定具体的产品类型。这种模式适用于当系统需要在不同平台或环境中创建一组相关或相互依赖的对象时,而这些...
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,提供一个接口用于创建一系列相关或相互依赖的对象,而无需指定它们的具体类。这种模式常用于需要跨多个产品系列进行实例化的场景。 抽象工厂模式的...
**抽象工厂方法(Abstract Factory Pattern)**是一种创建型设计模式,它提供了一种创建对象族的接口,而具体的对象族由子类决定。在C++中,这种模式可以帮助我们隔离对象的创建和使用,使得代码更加灵活,易于扩展...
例如,代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式(Factory Method Pattern)、抽象工厂模式(Abstract Factory Pattern)、适配器模式(Adapter Pattern)、模板方法模式(Template ...
Factory Method Pattern 工厂三兄弟之工厂方法模式(一) 工厂三兄弟之工厂方法模式(二) 工厂三兄弟之工厂方法模式(三) 工厂三兄弟之工厂方法模式(四) 抽象工厂模式-Abstract Factory Pattern 工厂三兄弟之...
抽象工厂模式(Abstract Factory Pattern)是创建型设计模式的一种,它提供了一个接口用于创建一系列相关的或相互依赖的对象,而无需指定它们具体的类。该模式的核心在于提供一个高层接口来创建一组相关的产品对象。...
3. **抽象工厂模式(Abstract Factory Pattern)**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。抽象工厂模式适用于当需要创建一系列相关对象,且这些对象都属于同一族类时。 工厂模式...
3. 抽象工厂(Abstract Factory):定义了创建产品对象的接口或抽象方法。 4. 具体工厂(Concrete Factory):实现了抽象工厂定义的接口,负责具体的产品实例化过程,每个具体工厂对应一种类型的产品。 在实际编程...
这类模式关注对象的创建过程,包括单例模式(Singleton)、工厂模式(Factory)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。它们提供了创建对象的不同策略,使代码更加灵活...
抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象族的接口,而无需指定具体类。这种模式的主要优点在于它允许系统独立于如何创建、组合和表示产品的方式,提供了更高层次的抽象,使得更换产品族或...