Nutz 设计模式应用 --- 静态工厂方法

来源:互联网 发布:搜索合作网络关闭 编辑:程序博客网 时间:2024/06/14 02:16

静态工厂方法比较简单, 与其说是设计模式, 倒不如认为是一个工具类(utils).

静态工厂方法的实现是使用静态方法, 目的也是为了避免构造函数过多而引起的可读性下降, 以Java8中的LocalDate为例:

public class Demo {    public static void main(String[] args) {        LocalDate.of(2017, 12, 12);        LocalDate.now();    }}

有时候, 当静态工厂过于泛滥时, 我们希望能够把静态方法集中起来, 作为一个抽象层次较高的工具类, 比如说Collections类:

    public static void CollectionsDemo(String[] args) {        List<Object> list = Collections.emptyList();        Map<Object, Object> map = Collections.emptyMap();    }

这两种形态的静态工厂方法都是可取的, 更多的情况下取决与使用习惯以及设计等.

在Nutz中可以直接使用类似于表达式的方法调用静态工厂方法并注入到相应对象中:

@IocBean(factory="net.wendal.mqtt.MqttAbcServiceFactory#create", args={"refer:dao"})public class AbcService extends Service {    ...}// 无任何注解public class MqttAbcServiceFactory {    public static AbcService create(Dao dao) {        return new XXXXAbcService(dao);    }}

静态工厂的方法存在的意义该是为了提高代码的可读性以及避免重复的代码, 如果你的代码中出现了过多的静态方法, 那就要考虑你是否退回到了结构化编程的老路了.

阅读全文
0 0
原创粉丝点击