抽象工厂模式
来源:互联网 发布:2017淘宝盗图申诉 编辑:程序博客网 时间:2024/06/05 18:17
抽象工厂模式的运用,如果需要创建一些不同的产品,而这些不同的产品又分别属于不同的产品类别,则可以创建产品类别的抽象工厂,
在产品的实现工厂类中加以实现。
抽象工厂模式主要有4个部分组成:抽象工厂类,实现抽象工厂的具体类,抽象类和实现抽象类的具体类。
1,所有动物类的接口
package joeho.net.csdn.blog.SimpleFactory;
public interface Animal {
public void eat();
}
2,老虎类
package joeho.net.csdn.blog.SimpleFactory;
public class Tiger implements Animal{
public void run() {
System.out.println("老虎会跑");
}
public void eat() {
System.out.println("老虎会吃");
}
}
3,海豚类
package joeho.net.csdn.blog.SimpleFactory;
public class Doiphin implements Animal{
public viod swim() {
System.out.println("海豚会游泳");
}
public void eat() {
System.out.println("海豚会吃");
}
}
4,鹦鹉类
package joeho.net.csdn.blog.SimpleFactory;
public class Parrot implements Animal {
public void fly() {
System.out.println("鹦鹉会飞");
}
public void eat() {
System.out.println("鹦鹉会吃");
}
}
5,亚洲老虎类继承自老虎类
package joeho.net.csdn.blog.SimpleFactory;
public class AsiaTiger extends Tiger{
public void run() {
System.out.println("亚洲老虎会跑");
}
public void eat() {
System.out.println("亚洲老虎会吃");
}
}
6,亚洲海豚类继承自海豚类
package joeho.net.csdn.blog.SimpleFactory;
public class AsiaDoiphin extends Doiphin {
public viod swim() {
System.out.println("亚洲海豚会游泳");
}
public void eat() {
System.out.println("亚洲海豚会吃");
}
}
7,亚洲鹦鹉类继承自鹦鹉类
package joeho.net.csdn.blog.SimpleFactory;
public class AsiaParrot extends Parrot {
public void fly() {
System.out.println("亚洲鹦鹉会飞");
}
public void eat() {
System.out.println("亚洲鹦鹉会吃");
}
}
8,非洲老虎类继承自老虎类
package joeho.net.csdn.blog.SimpleFactory;
public class AfricaTiger extends Tiger{
public void run() {
System.out.println("非洲老虎会跑");
}
public void eat() {
System.out.println("非洲老虎会吃");
}
}
9,非洲海豚类继承自海豚类
package joeho.net.csdn.blog.SimpleFactory;
public class AfricaDoiphin extends Doiphin {
public viod swim() {
System.out.println("非洲海豚会游泳");
}
public void eat() {
System.out.println("非洲海豚会吃");
}
}
10,非洲鹦鹉类继承自鹦鹉类
package joeho.net.csdn.blog.SimpleFactory;
public class AfricaParrot extends Parrot {
public void fly() {
System.out.println("非洲鹦鹉会飞");
}
public void eat() {
System.out.println("非洲鹦鹉会吃");
}
}
11,抽象工厂类
package joeho.net.csdn.blog.SimpleFactory;
public interface AnimalFactory {
public Tiger creatTiger () ;
public ParrotcreatParrot() ;
public DoiphincreatDoiphin() ;
}
12,具体工厂类
package joeho.net.csdn.blog.SimpleFactory;
public class AsiaAnimalFactory implements AnimalFactory {
public Tiger creatTiger (){
return new AsiaTiger();
}
public Parrot creatParrot(){
return new AsiaParrot();
}
public DoiphincreatDoiphin() {
return new AsiaDoiphin();
}
}
public class AfricaAnimalFactory implements AnimalFactory {
public Tiger creatTiger (){
return new AfricaTiger();
}
public Parrot creatParrot(){
return new AfricaParrot();
}
public DoiphincreatDoiphin() {
return new AfricaDoiphin();
}
}
..............
.............
5,客户端调用代码
//非洲老虎
Animal anm = new AfricaAnimalFactory().creatTiger ();
anm.run();
anm.eat();
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/joeho/archive/2010/01/21/5218988.aspx
- 工厂模式 -- 抽象工厂
- 工厂模式-抽象工厂
- 工厂模式-抽象工厂
- 工厂模式/抽象工厂模式
- 工厂模式&&抽象工厂模式
- 工厂模式---抽象工厂模式
- 工厂模式&抽象工厂模式
- 工厂模式,抽象工厂模式
- 【模式】抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 工厂方法,抽象工厂模式
- 2,工厂模式--抽象工厂
- C#工厂模式-抽象工厂
- 工厂模式与抽象工厂
- 抽象工厂设计模式
- 抽象工厂模式
- 如何去掉链接的虚线框
- Tinker
- code review 两三事
- 生命…剩一秒都要珍惜
- xP下安装IIS6.0的办法
- 抽象工厂模式
- Exe 4 篮球错排问题
- ACD
- 工厂方法模式
- 简单工厂模式
- 夜
- jQuery:CSS阴影对话框
- 很久没上CSDN,变化很大
- SMTP,POP3.IMAP的区别与联系