Java构造器

构造方式

无参

有参

引用其他构造器this(...)

构造模式

单例模式

Class A {
    private static A instance;
    public A getInstance() {
        if(instance==null) instance = new A();
        return instance;
    }
}

帮助者模式(Utility/Helper类)

无实例( non-instantiable)类(构造器被定义成private),仅仅可以选择将方法定义成final(后续会介绍如何定义类)或者static。

helpers类经常所扮演的是一个容器的角色,这个容器中放了很多在其他地方找不到但是其他类需要相互共享和使用的互相不相关的方法。

public final class HelperClass {
    private HelperClass() {
    }

    public static void helperMethod1() {
        // Method body here
    }

    public static void helperMethod2() {
        // Method body here
    }
}
--------------------- 
作者:RonTech 
来源:CSDN 
原文:https://blog.csdn.net/zyhlwzy/article/details/78937421 
版权声明:本文为博主原创文章,转载请附上博文链接!

工厂模式

接口

public interface BookFactory {
    Book newBook();
}

实现

public class Library implements BookFactory {
    @Override
    public Book newBook() {
        return new PaperBook();
    }
}

public class KindleLibrary implements BookFactory {
@Override
    public Book newBook() {
        return new KindleBook();
    }
}
--------------------- 
作者:RonTech 
来源:CSDN 
原文:https://blog.csdn.net/zyhlwzy/article/details/78937421 
版权声明:本文为博主原创文章,转载请附上博文链接!

调用

Book a = new KindleLibrary();

依赖注入

依赖注入(一说控制反转)被类设计者认为是一个很好的做法:如果某些类的实例依赖其他类的实例,被依赖的实例应该通过构造(比如通过设置器——setters,或者策略——strategies模式等)的思想提供给依赖的实例,而不是依赖的实例自行创建。

不好的实例:

public class Dependant {
    private final DateFormat format = DateFormat.getDateInstance();

    public String format( final Date date ) {
        return format.format( date );
    }
}

好的实例(构造器注入和方法注入):

public class Dependant {
    private final DateFormat format;

    public Dependant( final DateFormat format ) {
        this.format = format;
    }


    public String format( final Date date ) {
        return format.format( date );
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值