关于java的泛型单例模式,大家都有很多不同的想法,有人认为不好用,很麻烦,也有一些人认为比较好用,关键看自己怎么理解。本人一直都不怎么用泛型,如果要支持很多类型,直接用Object了。虽然知道用泛型确实有很多好处,但是嫌麻烦。后来听大家说道java泛型,自己也就慢慢在尝试,个人感觉java泛型还好,只是理解问题而已。
我们会问到,怎么写泛型静态方法啊?如果写API、写框架给别人用的话,就要学好泛型和反射。泛型的目的就是编译器给我们做了一个类型的验证,这样,执行时发生的问题,在编译时就给你提示出来了,减少了维护成本。其实要学java的泛型你用就知道有的实现起来好麻烦,之前刚开始维护公司自己的IOC框架,看了一堆的范型和借口心理直骂娘.
泛型不仅仅是检查类型, 还可以精简代码,它主要是对集合中的数据的规范,也就是使用泛型让集合中的数据类型进行统一,泛型实现的单例不是严格的单例,它仅仅是一个语法糖。你仍然可以通过外部代码来创建一个新的实例,从而打破“单例”的约束。
但是说某一门语言是强弱类型有点不太准确的,只能说支持强弱类型。我们常说C是强类型的,而在某些框架下,比如Win32,会有HANDLE一类的变量,真正的类型是什么编译器是不进行处理的,需要程序员在使用的时候给其定义。
单例并不是一个好的泛型练习对象。严格、简洁并且线程安全的单例应该使用enum。
因为使用Java中的泛型机制,那么你不用类型之间的转换,因为事先定义好的泛型,你没给相同的数据类型的情况下,那么将编译都不会让你通过,你应该知道使用泛型的好处吧,好好体会。
本文章有西安达内编辑整理www.xatarena.cn