定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。


    话不多说 上代码~~~

    1. ##抽象产品接口
    2. public interface Light {
    3. public void turnOn();
    4. public void turnOff();
    5. }
    6. ##产品的实现
    7. public class BuldLight implements Light{
    8. public void turnOn() {
    9. System.out.println("BuldLight On");
    10. }
    11. public void turnOff() {
    12. System.out.println("BuldLight Off");
    13. }
    14. }
    15. ##产品B的实现
    16. public class TubeLight implements Light{
    17. public void turnOn() {
    18. System.out.println("TubeLight On");
    19. }
    20. public void turnOff() {
    21. System.out.println("TubeLight Off");
    22. }
    23. }
    24. ##抽象工厂接口
    25. public interface Creator {
    26. public Light createLight();
    27. }
    28. ##实现产品类型
    29. public class BuldCreator implements Creator{
    30. public Light createLight() {
    31. return new BuldLight();
    32. }
    33. }
    34. public class TubeCreator implements Creator{
    35. public Light createLight() {
    36. return new TubeLight();
    37. }
    38. }
    39. ##测试
    40. public class Client {
    41. public static void main(String[] args) {
    42. //创建一个工厂
    43. Creator creator = new BuldCreator();
    44. //调用创建方法 创建出对象
    45. Light light = creator.createLight();
    46. light.turnOn();
    47. light.turnOff();
    48. creator = new TubeCreator();
    49. light = creator.createLight();
    50. light.turnOn();
    51. light.turnOff();
    52. }
    53. }