抽象工厂
一、工厂方法
1、工厂方法四要素:抽象工厂、具体工厂、抽象产品、具体产品
2、抽象工厂中定义抽象方法,这些方法是每个产品族都要实现的方法,返回类型为抽象对象
产品族:每个工厂要生产几个对象,这些对象为一个产品族
具体工厂为抽象工厂的实现,具体工厂继承抽象工厂的每一个方法,返回对应抽象产品(返回产品对象)
抽象产品定义了具体产品需要继承的方法
具体产品根据自身的业务逻辑去实现
二、代码
抽象工厂 public abstract class AbstractFactory { abstract Food eat(); abstract Shoot shoot(); }
具体工厂 这只是一个具体工厂,还可以有多个具体工厂的实现,这里可以继续继承抽象工厂 public class ModernFactory extends AbstractFactory{ @Override public Food eat() { return new Bread(); } @Override Shoot shoot() { return new Ak47(); } }
抽象对象 public abstract class Shoot { abstract void getShootName(); } public abstract class Food { abstract void printName(); }
具体对象 public class Ak47 extends Shoot{ @Override void getShootName() { System.out.println("tutututu"); } } public class Bread extends Food{ @Override void printName() { System.out.println("bread"); } }
main方法 public class Main { public static void main(String[] args) { AbstractFactory abstractFactory = new ModernFactory(); Food eat = abstractFactory.eat(); eat.printName(); Shoot shoot = abstractFactory.shoot(); shoot.getShootName(); } }
作者:http://cnblogs.com/lyc-code/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权力。