实战设计模式之抽象工厂
2013-11-21 12:25
423 查看
只做代码分析,不做语义解析(高级程序员都从代码理解设计思想和UML理解设计思想)。代码来自尚学堂,UML来自本人手绘:
AbstractFactory.java
DefaultFactory.java
Vehicle.java
Weapon.java
Apple.java
AK47.java
Car.java
Broom.java
MushRoom.java
UML图如下:
抽象工厂的作用是生产系列成品以及系列产品的替换...
更多内容请查看我的其他blog:http://blog.csdn.net/caicongyang
AbstractFactory.java
public abstract class AbstractFactory { public abstract Vehicle createVehicle(); public abstract Weapon createWeapon(); public abstract Food createFood(); }
DefaultFactory.java
public class DefaultFactory extends AbstractFactory{ @Override public Food createFood() { // TODO Auto-generated method stub return new Apple(); } @Override public Vehicle createVehicle() { // TODO Auto-generated method stub return new Car(); } @Override public Weapon createWeapon() { // TODO Auto-generated method stub return new AK47(); } }MagicFactory.java
public class MagicFactory extends AbstractFactory { @Override public Food createFood() { // TODO Auto-generated method stub return new MushRoom(); } @Override public Vehicle createVehicle() { // TODO Auto-generated method stub return new Broom(); } @Override public Weapon createWeapon() { // TODO Auto-generated method stub return new MagicStick(); } }Food.java
public abstract class Food { public abstract void printName(); }
Vehicle.java
public abstract class Vehicle { public abstract void run(); }
Weapon.java
public abstract class Weapon { public abstract void shoot(); }
Apple.java
public class Apple extends Food { public void printName() { System.out.println("apple"); } }
AK47.java
public class AK47 extends Weapon{ public void shoot() { System.out.println("哒哒哒..."); } }
Car.java
public class Car extends Vehicle { public void run() { System.out.println("冒着烟奔跑中car......."); } }
Broom.java
public class Broom extends Vehicle{ public void run() { System.out.println("一路沙尘暴飞奔而来broom....."); } }MagicStick.java
public class MagicStick extends Weapon { @Override public void shoot() { System.out.println("fire hu hu hu ..."); } }
MushRoom.java
public class MushRoom extends Food { @Override public void printName() { // TODO Auto-generated method stub System.out.println("mushroom"); } }Test.java
public class Test { public static void main(String[] args) { AbstractFactory f = new DefaultFactory(); Vehicle v = f.createVehicle(); v.run(); Weapon w = f.createWeapon(); w.shoot(); Food a = f.createFood(); a.printName(); } }
UML图如下:
抽象工厂的作用是生产系列成品以及系列产品的替换...
更多内容请查看我的其他blog:http://blog.csdn.net/caicongyang
相关文章推荐
- 设计模式重温1 -简单工厂模式,工厂方法,抽象工厂
- 设计模式之简单工厂、工厂方法、抽象工厂
- 设计模式--简单工厂,工厂方法,抽象工厂
- 设计模式学习-每日一记(4.抽象工厂)
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- JAVA设计模式之二抽象工厂
- C#--抽象工厂设计模式原理
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别【转】
- 【设计模式】简单工厂,工厂方法,抽象工厂
- 简单抽象工厂设计模式代码
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别 (转)
- 设计模式培训之三:抽象工厂
- 设计模式---抽象工厂
- 设计模式之抽象工厂
- Head_First设计模式(三)----工厂模式抽象工厂
- 设计模式 抽象工厂 Abstract Factory
- Java设计模式-抽象工厂设计模式
- 茂哥设计模式:简单工厂,工厂方法,抽象工厂
- 【设计模式之抽象工厂】