我是靠谱客的博主 朴实玉米,最近开发中收集的这篇文章主要介绍设计模式-抽象工厂模式(Abstract Factory Pattern)简单例子,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

抽象工厂模式和工厂模式的要素是一样的。但是抽象工厂模式是提供一系列相关或者相互依赖对象的接口,而无需指定他们具体的类。

比如我们上一篇模块中举的例子。

我们有运动员接口,有体育总局这个工厂接口,可以生产出不同的运动员协会,不同的远动员协会生产不同的运动员,那么我们可以让体育总局生产出不同的运动器材给不同的体育协会。让

抽象工厂示意图

他们自己的运动员使用。这就抽象工厂模式。

简单例子

package myDesignPatternsTest.abstrcFactoryPattern;
public interface Athletes {
public void run(SportsEquipment sportsEquipment);
public void eat();
public void sleep();
}
package myDesignPatternsTest.abstrcFactoryPattern;
public interface SportsEquipment {
public void create();
}
package myDesignPatternsTest.abstrcFactoryPattern;
public interface SimpleFactory {
public Athletes CreateAthletes();
public SportsEquipment CreateEquipment();
}
package myDesignPatternsTest.abstrcFactoryPattern;
public class RunEquiment implements SportsEquipment {
@Override
public void create() {
System.out.println("跑步器材");
}
}
package myDesignPatternsTest.abstrcFactoryPattern;
public class RunAthletes implements Athletes {
@Override
public void run(SportsEquipment sportsEquipment) {
sportsEquipment.create();
System.out.println("长跑运动员在跑");
}
@Override
public void eat() {
System.out.println("长跑运动员在吃");
}
@Override
public void sleep() {
System.out.println("长跑运动员在谁");
}
}
package myDesignPatternsTest.abstrcFactoryPattern;
public class RunFactory implements SimpleFactory {
@Override
public Athletes CreateAthletes() {
return new RunAthletes();
}
@Override
public SportsEquipment CreateEquipment() {
return new RunEquiment();
}
}
package myDesignPatternsTest.abstrcFactoryPattern;
public class SwingEquiment implements SportsEquipment {
@Override
public void create() {
System.out.println("游泳器材");
}
}

public class Swing implements Athletes {
@Override
public void run(SportsEquipment sportsEquipment) {
sportsEquipment.create();
System.out.println("游泳运动员在游泳");
}
@Override
public void eat() {
System.out.println("游泳运动员在吃");
}
@Override
public void sleep() {
System.out.println("游泳运动员在睡");
}
}
package myDesignPatternsTest.abstrcFactoryPattern;
public class SwingFactory implements SimpleFactory {
@Override
public Athletes CreateAthletes() {
return new Swing();
}
@Override
public SportsEquipment CreateEquipment() {
return new SwingEquiment();
}
}
package myDesignPatternsTest.abstrcFactoryPattern;
public class Client {
public static void main(String[] args) {
/* SimpleFactory simpleFactory=new SimpleFactory();
Athletes runAthletes=simpleFactory.CreateAthletes("Run");
runAthletes.eat();
runAthletes.run();
runAthletes.sleep();
Athletes swing=simpleFactory.CreateAthletes("Swing");
swing.sleep();
swing.run();
swing.eat();*/
SimpleFactory runFactory=new RunFactory();
SimpleFactory swingFactory = new SwingFactory();
Athletes runAthletes=runFactory.CreateAthletes();
SportsEquipment sportsEquipment=runFactory.CreateEquipment();
runAthletes.eat();
runAthletes.run(sportsEquipment);
runAthletes.sleep();
Athletes swing=swingFactory.CreateAthletes();
SportsEquipment swingE=swingFactory.CreateEquipment();
swing.sleep();
swing.run(swingE);
swing.eat();
}
}
长跑运动员在吃
跑步器材
长跑运动员在跑
长跑运动员在谁
游泳运动员在睡
游泳器材
游泳运动员在游泳
游泳运动员在吃

 

 

 

 

 

最后

以上就是朴实玉米为你收集整理的设计模式-抽象工厂模式(Abstract Factory Pattern)简单例子的全部内容,希望文章能够帮你解决设计模式-抽象工厂模式(Abstract Factory Pattern)简单例子所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部