设计模式之抽象工厂模式
2017-04-14 10:13
183 查看
前面提到工厂模式是一对一,现在的抽象工厂则是一对多了。
上代码:
首先猫接口:
猫下面分为黑猫白猫,具体实现:
黑猫:
白猫:
然后狗接口:
狗下面分为黑狗白狗:
白狗:
黑狗:
ok,动物类这边结束,接下来是工厂:
动物工厂,里面有获得猫以及获得狗的方法
然后具体的黑动物工厂:
白动物工厂:
工厂结束,接下来具体实现类:
OK,Done!
上代码:
首先猫接口:
public interface Cat { public void speak(); }
猫下面分为黑猫白猫,具体实现:
黑猫:
public class BlackCat implements Cat { @Override public void speak() { System.out.println("I am hei miao~"); } }
白猫:
public class WhiteCat implements Cat{ @Override public void speak() { System.out.println("I am bai miao~"); } }
然后狗接口:
public interface Dog { public void speak(); }
狗下面分为黑狗白狗:
白狗:
public class WhiteDog implements Dog{ @Override public void speak() { System.out.print("I am hei wang~"); } }
黑狗:
public class BlackDog implements Dog { @Override public void speak() { System.out.print("I am bai wang~"); } }
ok,动物类这边结束,接下来是工厂:
动物工厂,里面有获得猫以及获得狗的方法
public interface AnimalFactory { Cat getCat(); Dog getDog(); }
然后具体的黑动物工厂:
public class BlackAnimalFactory implements AnimalFactory{ @Override public Cat getCat() { return new BlackCat(); } @Override public Dog getDog() { return new BlackDog(); } }
白动物工厂:
public class WhiteAnimalFactory implements AnimalFactory{ @Override public Cat getCat() { return new WhiteCat(); } @Override public Dog getDog() { return new WhiteDog(); } }
工厂结束,接下来具体实现类:
public class testMain3 { public static void main(String[] args) { AnimalFactory animalFactory = new WhiteAnimalFactory(); Cat cat = animalFactory.getCat(); cat.speak(); } }
OK,Done!
相关文章推荐
- 设计模式C#描述——抽象工厂模式
- .NET设计模式-抽象工厂模式(Abstract Factory)
- 设计模式C#描述——抽象工厂模式
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- 设计模式——创建型模式之 Abstract Factory抽象工厂模式
- [导入]C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式)
- 设计模式C#描述——抽象工厂模式
- Java设计模式圣经连载(03)-抽象工厂模式
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- 我的设计模式之旅(3)――抽象工厂模式AbstractFactory
- 设计模式实践(抽象工厂模式应用)—通信录的优化过程
- 设计模式之抽象工厂模式
- AspectJ实现设计模式(四)——抽象工厂模式
- .NET设计模式:抽象工厂模式(Abstract Factory)
- [导入]C#面向对象设计模式纵横谈(4):Abstract Factory 抽象工厂模式(创建型模式)
- 设计模式笔记-抽象工厂模式
- .Net设计模式之抽象工厂模式(Abstract Factory)
- .NET设计模式(3):抽象工厂模式(Abstract Factory)(转)
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- 设计模式(3)-抽象工厂模式(Abstract Factory)