Java注册表类?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java注册表类?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1249字,纯文字阅读大概需要2分钟。
内容图文
我对Java很新.我来自PHP,我曾经使用magic __get和__set方法在php中创建注册表类.这样系统的其他部分就可以轻松完成:
registry.foo = new Foo();
我应该提一下我正在尝试创建游戏引擎.这是我在Java atm的注册表:
class Registry {
private static Map<String, Object> box = new HashMap<String, Object>();
public static Object get(String key) {
if (Registry.box.get(key) != null) {
return Registry.box.get(key);
}else {
return null;
}
}
public static void set(String key, Object o) {
Registry.box.put(key, o);
}
}
然后,为了系统的其他部分访问注册表,我目前需要这整个事情:
((Object) Registry.get("Object")).doSomething();
这真的是很多代码.在php中,这将通过简单地完成:
Registry.foo.doSomething();
有什么方法可以让这更简单一些吗?我想我可以创建公共字段,但是regsitry类需要隐式创建这些字段,因为可能需要添加新对象,这些对象本身是未知的,这是令人烦恼的:P
提前致谢!
解决方法:
这是一个双管齐下的问题:
> Java是一种静态类型语言,并且不提供在运行时定义对象的语言灵活性(您可以使用库在运行时合成类,但是,请参阅#2)
>对象的全局注册表以类型安全的语言击败了许多安全.如果您的整个应用程序以获取和将对象放入全局Map为中心,那么可能会有更安全且更少耦合的设计.
怎么解决这个问题?
>重新设计您的应用程序结构,不需要全局地图.
>使用Java的动态语言子集(例如Groovy).
>使用Scala 2.10(兼容JVM),它具有动态类型,可以完全满足您的需求.
内容总结
以上是互联网集市为您收集整理的Java注册表类?全部内容,希望文章能够帮你解决Java注册表类?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。