gpt4 book ai didi

java - 用 Java 制作原型(prototype)而不是扩展

转载 作者:行者123 更新时间:2023-11-30 18:02:44 26 4
gpt4 key购买 nike

类 Javascript 的原型(prototype)设计是否可以实现,甚至使用反射?我能否将我的对象包装在另一个对象中,只是为了使用一两个以上的方法扩展其功能,而不将其所有原始非私有(private)方法连接到包装类,或者 extends 是我得到的全部?

最佳答案

如果您正在寻找扩展方法,您可以试试 Xtend。 Xtend 是编译为 java 代码并消除样板代码的语言。

以下文字是从Xtend Docs for extensions中窃取的:

通过在字段、局部变量或参数声明中添加扩展关键字,其实例方法成为扩展方法。

假设您想在类 Person 上拥有一些特定于层的功能。假设您在一个类似 servlet 的类中,并且想要使用某种持久性机制来持久化一个 Person。让我们假设 Person 实现了一个公共(public)接口(interface) Entity。你可以有以下界面

interface EntityPersistence {
public save(Entity e);
public update(Entity e);
public delete(Entity e);
}

如果您已经获得了该类型的实例(通过工厂或依赖注入(inject)或其他方式),如下所示:

class MyServlet {
extension EntityPersistence ep = Factory.get(typeof(EntityPersistence))
...

}

您可以像这样保存、更新和删除任何实体:

val Person person = ...
person.save // calls ep.save(person)
person.name = 'Horst'
person.update // calls ep.update(person)
person.delete // calls ep.delete(person)

关于java - 用 Java 制作原型(prototype)而不是扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16517515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com