技术关键:
多态:面向对象程序设计的基本特征之一。
Java中的多态主要是通过重写父类(或接口)中的方法来实现的。
实现过程:
1.编写Car类,该类是一个抽象类,定义了一个抽象方法getInfo( )。
package test; public abstract class Car { public abstract String getInfo(); //用来描述汽车的信息 }
2.编写BMW类,该类继承自Car并实现getInfo( )方法。
1 package test; 2 public class BMW extends Car { 3 @Override 4 public String getInfo() { 5 // TODO Auto-generated method stub 6 return "BMW"; 7 } 8 }
3.编写Benz类,该类继承自Car并实现getInfo( )方法。
1 package test; 2 public class Benz extends Car{ 3 @Override 4 public String getInfo() { 5 return "Benz"; 6 } 7 }
4.编写CarFactory类,该类定义了一个静态方法getCar( ),它可以根据用户指定的车型来创建对象。
1 package test; 2 public class CarFactory { 3 public static Car getCar(String name) { 4 if (name.equalsIgnoreCase("BMW")) { //如果需要BMW,则创建BMW对象 5 return new BMW(); 6 } else if (name.equalsIgnoreCase("Benz")) { //如果需要Benz,则创建Benz对象 7 return new Benz(); 8 } else { 9 return null; //暂时不支持其他车型 10 } 11 } 12 }
5.编写Customer类用来进行测试。在main()方法中,根据用户需要提取不同的汽车。
1 package test; 2 public class Customer { 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 System.out.println("顾客需要购买BMW"); 6 Car bmw = CarFactory.getCar("BMW"); 7 System.out.println("提取汽车:" + bmw.getInfo()); 8 System.out.println("顾客需要购买Benz"); 9 Car benz = CarFactory.getCar("Benz"); 10 System.out.println("提取汽车:" + benz.getInfo()); 11 } 12 }
输出如下图所示:
小结:
本实例实现了设计模式中的简单工厂模式,该模式将创建对象的过程放在了一个静态方法中来实现。实际编程中,如果需要创建大量对象,使用该模式比较理想。当4S店支持新的车型时,只需要修改CarFactory类进行增加即可,对其他类不需要修改。