zoukankan      html  css  js  c++  java
  • 设计模式---工厂模式

    工厂模式介绍
    
    1.工厂模式?
        
        工厂设计模式是最常见的设计模式之一,在工厂模式中,提供一种最佳的创建对象的方式,最大程度的实现代码的解耦。
         
        工厂模式的优缺点:
        优点:
            高度解耦,不需要再去new对象;
            扩展性高:当你想增加一个产品,只需要扩展工厂类,并增加一个产品即可;
            使用简单:屏蔽了产品的具体实现,使用者只用关注产品的接口即可;
        缺点:
            每次增加一个产品的时候都需要新增一个实现类,这样下来类的数量不断增加,增加了系统复杂度;
        
    2.工厂模式的简单实现:
        1.一个接口:
            public interface Car {
                void run();
            }
            
        2.接口的实现类对象:
            实现类1:
            public class Benz implements Car {
                @Override
                public void run() {
                    System.out.println("我买了一辆奔驰,贼高端!!!");
                }
            }
            
            实现类2:
            public class Ferrari implements Car {
                @Override
                public void run() {
                    System.out.println("我买了一辆法拉利, 跑的贼快!!!");
                }
            }
            
        3.工厂类:
            public class CarFactory {
    
                //对外提供方法,便于外界获取实例对象
                public Car getInstance(String brand) {
                    if (brand == null) {
                        return null;
                    }
    
                    if ("Ferrari".equals(brand)) {
                        return new Ferrari();
                    } else if ("Benz".equals(brand)) {
                        return new Benz();
                    }
                    return null;
                }
            }
            
        4.测试:
            public class CarTest {
                public static void main(String[] args) {
    
                    //创建工厂对象
                    CarFactory carFactory = new CarFactory();
                    //获取对象
                    Car benz = carFactory.getInstance("Benz");
                    benz.run();
                }
            }
    
        
            
        
    
            
  • 相关阅读:
    Maximum Flow Exhaustion of Paths Algorithm
    ubuntu下安装java环境
    visualbox使用(二)
    vxworks一个超级奇怪的错误(parse error before `char')
    February 4th, 2018 Week 6th Sunday
    February 3rd, 2018 Week 5th Saturday
    February 2nd, 2018 Week 5th Friday
    February 1st, 2018 Week 5th Thursday
    January 31st, 2018 Week 05th Wednesday
    January 30th, 2018 Week 05th Tuesday
  • 原文地址:https://www.cnblogs.com/lyle-liu/p/12750448.html
Copyright © 2011-2022 走看看