0
点赞
收藏
分享

微信扫一扫

java设计模式三之抽象工厂设计模式


前言:

     抽象工厂设计模式是用来创建一个产品族的,简单工厂和工厂方法设计模式是用来创建一个具体产品的。


怎么实现:

     抽象工厂:工厂的父类,包含对多个产品的声明

     具体工厂:抽象工厂的实现,负责创建产品族中的多个产品对象

     实体父类:被创建对象的父类,负责描述所有实例的公共接口

     具体实体:要被创建的具体的对象


代码:

  水果类父类:

package com.xhx.designpattern;

public interface Fruit {
/**
* 水果
*/
void get();
}

苹果抽象类:

package com.xhx.designpattern;

public abstract class Apple implements Fruit{
public abstract void get();
}

香蕉抽象类:

package com.xhx.designpattern;

public abstract class Banana implements Fruit{
public abstract void get();
}

北方苹果具体类:

package com.xhx.designpattern;

public class NorthApple extends Apple {
@Override
public void get() {
System.out.println("北方苹果");
}
}


北方香蕉具体类:

package com.xhx.designpattern;

public class NorthBanana extends Banana {
@Override
public void get() {
System.out.println("北方香蕉");
}
}


南方苹果具体类:

package com.xhx.designpattern;

public class SourthApple extends Apple {
@Override
public void get() {
System.out.println("南方苹果");
}
}


南方香蕉具体类:

package com.xhx.designpattern;

public class SourthBanana extends Banana {
@Override
public void get() {
System.out.println("南方香蕉");
}
}


工厂类父类:工厂用来生产一系列产品

package com.xhx.designpattern;

public interface FruitFactory {
//实例化Apple
Fruit getApple();

//实例化Banana
Fruit getBanana();
}


北方工厂:

package com.xhx.designpattern;

public class NorthFruitFactory implements FruitFactory {
@Override
public Fruit getApple() {
return new NorthApple();
}

@Override
public Fruit getBanana() {
return new NorthBanana();
}
}


南方工厂:

package com.xhx.designpattern;

public class SourthFruitFactory implements FruitFactory {
@Override
public Fruit getApple() {
return new SourthApple();
}

@Override
public Fruit getBanana() {
return new SourthBanana();
}
}



启动类:

package com.xhx.designpattern;


public class App
{
public static void main( String[] args )
{
//可以创建北方水果的工厂
FruitFactory fruitFactory = new NorthFruitFactory();
Fruit apple = fruitFactory.getApple();
apple.get();

Fruit banana = fruitFactory.getBanana();
banana.get();
}
}




举报

相关推荐

0 条评论