1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Java中introduce方法 Introduce Foreign Method (引入外加函数)

Java中introduce方法 Introduce Foreign Method (引入外加函数)

时间:2024-02-08 22:50:48

相关推荐

Java中introduce方法 Introduce Foreign Method (引入外加函数)

Summary:

你需要为提供服务的类增加一个函数。但你无法修改这个类。在客户类中建立一个函数,并以第一参数形式传入一个服务类实例。

Motivation:

你正在使用一个类,它提供了所有需要的服务,但是不久之后,你有需要一项新的服务,这个类却无法供应。如果可以修改源码,那么事情很简单,你自己加一个新函数,如果不行,就得在客户端编码,补足你要的那个函数。

如果客户类只使用这项功能一次,这样做没什么关系,但是如果你需要多次使用这个函数,或者你发现自己为一个服务类建立了大量外加函数,或者发现有许多类都需要同样的外加函数,那就不应该再使用本项重构,而应该使用Introduce Local Extension.

但是不要忘记:外加函数终归是权宜之计。如有可能,还是尽量把它放在该放的位置。

Mechanics:

1.在客户类中建立一个函数,用来提供你需要的功能

这个函数不应该调用客户类的任何特性。如果它需要一个值,把该值当做参数传给它

2.以服务类实例作为该函数的第一个参数

3.将该函数注释为:“外加函数 (foreign method),应在服务类实现”

这么一来,如果将来有机会将外加函数搬移到服务类中时,你便可以轻松找出这些外加函数。

范例

程序中,需要跨过一个收费周期。原本代码像这样:

Date newStart = new Date (previousEnd.getYear(), previousEnd.getMonth(), previousEnd.getDate() + 1); 可以将赋值运算右侧代码提炼到一个独立函数中。这个函数就是Date 类的一个外加函数:

Date newStart = nextDay(previousEnd);

private static Date nextDay(Date arg){

//foreign method, should be on Date

return new Date(arg.getYear(), arg.getMonth(), arg.getDate + 1);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。