zoukankan      html  css  js  c++  java
  • java笔记之设计模式 1、创建型模式:工厂方法

    工厂方法的目的是使创建的对象和使用的对象是分离的,并且客户端总是引用抽象工厂和抽象产品:

     1、静态工厂方法:

    java标准库的静态方法,如:Integer.valueOf();

    Integer即是产品又是静态工厂,它提供了静态工厂valueOf()来创建Integer;

    public final class Integer {
        public static Integer valueOf(int i) {
            if (i >= IntegerCache.low && i <= IntegerCache.high)
                return IntegerCache.cache[i + (-IntegerCache.low)];
            return new Integer(i);
        }
        ...
    }

    好处在于静态工厂方法内部可进行优化,可返回一个新的实例Integer,也可直接返回一个缓存的Integer实例,节约资源。

    工厂方法可以隐藏创建产品的细节,且不一定每次都会真正创建产品,完全可以返回缓存的产品,从而提升速度并减少内存消耗。

    静态工厂方法List.of();
    List<String> list = List.of("A","B","C");
    ArrayList<String> list = List.of("A","B","C");

    调用方获取的产品总是List接口,并不关心实际类型,可修改为返回java.ArrayList;这就是里氏替换原则:返回实现接口的任意子类
    都可以满足该方法的要求,且不影响调用方。

    总是引用接口而非实现类,能允许调用子类而不影响调用方,尽可能的面向抽象编程。



    备注:本随笔为学习廖雪峰大佬的Java教程过程中记的笔记;附上原文链接:
    https://www.liaoxuefeng.com/wiki/1252599548343744/1281319170474017




    如有错误欢迎指正
  • 相关阅读:
    keepalived排错
    shell脚本记录
    mysql(mariadb)主从配置
    添加硬盘设备
    天数
    centos7网络配置总结
    Keepalibed监控nginx
    zabbix安装
    基于JWT的web api身份验证及跨域调用
    C# webapi 权限验证
  • 原文地址:https://www.cnblogs.com/qaqhong/p/13143435.html
Copyright © 2011-2022 走看看