• 2、工厂方法模式


    工厂方法模式分三中:简单工厂模式、工厂方法模式、抽象工厂模式

        产品类:

    1. interface ICar{
    2.    void run();
    3. }
    4. public Class BMW  implements ICar{
    5.    public void run(){
    6.       System.println("宝马跑100码");
    7.    }
    8. }
    9. public Class LBJN implements ICar{
    10.    public void run(){
    11.       System.println("兰博基尼跑200码");
    12.    }
    13. }

      工厂类:

    1. public Class CarFactory{
    2.  
    3.    public ICar createCar(int case){
    4.        if(case == 100){
    5.           return new BMW();
    6.        }
    7.        if(case == 200){
    8.           return new LBJN();
    9.        }
    10.    }
    11. }

    调用: 

    1. public Class Test{
    2.      //创建工厂实例对象
    3.      CarFactory factory = new CarFactory();
    4.      //获取产品并且执行方法
    5.      factory.createCar(200).run();
    6. }

     

    产品类:

    1. interface ICar{
    2.    void run();
    3. }
    4. public Class BMW  implements ICar{
    5.    public void run(){
    6.       System.println("宝马跑100码");
    7.    }
    8. }
    9. public Class LBJN implementsICar{
    10.    public void run(){
    11.       System.println("兰博基尼跑200码");
    12.    }
    13. }

    工厂类:

    1. //抽象工厂
    2. interface ICarFactory{
    3.   ICar createCar();
    4. }
    5. //创建宝马的工厂
    6. public Class BMWFactory implements ICarFactory{
    7.     ICar createCar(){
    8.       return new BMW();
    9.     }
    10. }
    11. //创建兰博基尼的工厂
    12. public Class LMJNFactory implements ICarFactory{
    13.     ICar createCar(){
    14.       return new LMJN();
    15.     }
    16. }

    调用:

    1. public Class Test{
    2.      //创建抽象工厂实例对象指向宝马factory
    3.      ICarFactory factory = new BMWFactory();
    4.      //获取产品并且执行方法
    5.      factory.createCar().run();
    6. }

    产品类:

    1. //食品类产品族
    2. interface IFood{
    3.    void eat();
    4. }
    5. public Class SummerFood implements IFood{
    6.   void eat(){
    7.     }
    8. }
    9. public Class WinnerFood implements IFood{
    10.   void eat(){
    11.     }
    12. }
    13. //衣服类产品族
    14. interface ICloths{
    15.    void dress();
    16. }
    17. public Class SummerCloths implements ICloths{
    18.     void dress(){}
    19. }
    20. public Class WinnerCloths implements ICloths{
    21.     void dress(){}
    22. }

    工厂类:

      1. interface IFactory{
      2.   IFood createFood();
      3.   ICloths createCloths();
      4. }

      5. Public Class SummerFactory(){

      6.    IFood createFood(){
      7.      return new SummerFood();
      8.    }
      9.    ICloths createCloths(){
      10.      return new SummerCloths();
      11.    }
      12. }
      13. Public Class WinnerFactory(){
      14.    IFood createFood(){
      15.      return new WinnerFood();
      16.    }
      17.   ICloths createCloths(){
      18.      return new WinnerCloths();
      19.    }
      20. }
  • 相关阅读:
    面向对象-01
    网络编程-02-客户端搭建
    网络编程-01-服务端搭建
    日志-02
    日志-01
    md5加密
    shell 第五天
    shell第四天
    shell第三天
    shell
  • 原文地址:https://www.cnblogs.com/guoliangxie/p/5283559.html
Copyright © 2020-2023  润新知