设计模式(六)抽象工程模式

来源:互联网 发布:网络思想政治教育报告 编辑:程序博客网 时间:2024/05/17 12:47

概念:抽象工厂模式是工厂方法模式的升级版本,在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。

适用于多个细分的部分组成的一个产品的制造工厂。


例子:一个世界级的足球俱乐部,需要伟大的球衣,雄厚的资金,优质的球场草皮


抽象一个足球队的工厂接口,FootBallTeamFactory,里面3个方法接口Player,Money,Place

public interface FootBallTeamFactory {Player createPlayer();Money createMoney();Place createPlace();}

public interface Player {public void play();}

public interface Money {public void pay();}

public interface Place {public void haveLand();}

伟大俱乐部工厂GreatFootBallTeam实现FootBallTeamFactory,并且实现其方法,返回其方法的实现类GoodPlayer,MoreMoney,GoodPlayer

public class GreatFootBallTeam implements FootBallTeamFactory{@Overridepublic GoodPlayer createPlayer() {return new GoodPlayer();}@Overridepublic MoreMoney createMoney() {return new MoreMoney();}@Overridepublic BroadPlace createPlace() {return new BroadPlace();}}

public class GoodPlayer implements Player {@Overridepublic void play() {System.out.println("世界级表现");}}

public class MoreMoney implements Money {@Overridepublic void pay() {System.out.println("资金雄厚");}}

public class BroadPlace implements Place{@Overridepublic void haveLand() {System.out.println("良好的草皮");}}


测试方法如下:

public class ClientTest {public static void main(String[] args) {FootBallTeamFactory factory = new GreatFootBallTeam();Player player = factory.createPlayer();Money money = factory.createMoney();Place place = factory.createPlace();player.play();money.pay();place.haveLand();}}
控制台输出结果为:

世界级表现
资金雄厚
良好的草皮















原创粉丝点击