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();
                }
            }
    
        
            
        
    
            
  • 相关阅读:
    【JVM性能调优】检测最耗cpu的线程的脚本
    JUC之ThreadPoolExecutor实现原理
    HashMap实现原理
    JUC之阻塞队列BlockingQueue的实现原理
    dubbo实践
    .net 技术基础
    日志等级
    CentOS 笔记(六) 历史命令 自动补充
    CentOS 笔记(五) 常用工具
    CentOS 笔记(二) 端口占用,进程查看
  • 原文地址:https://www.cnblogs.com/lyle-liu/p/12750448.html
Copyright © 2011-2022 走看看