首页app软件什么叫动态参数 动态参数文件

什么叫动态参数 动态参数文件

圆圆2025-08-19 17:01:47次浏览条评论

动态参数类型处理:使用 builder 模式构建灵活的函数

本文介绍了如何使用 Builder 模式来解决函数参数类型不确定的问题。Builder 模式允许我们在构建对象时,逐步设置对象的属性,从而避免了创建大量重载方法或使用复杂的条件判断。Builder 模式详解

Builder 模式是一种创建型设计模式,接一个复杂对象的构建过程彼此表示分离,使得同样的构建过程可以创建不同的表示。Builder模式通常包含以下几个角色:Builder(抽象构建者):定义了构建对象的抽象方法,通常包含设置对象各个属性的方法。ConcreteBuilder(具体构建者):实现了 Builder 接口,负责具体对象的构建过程。Director 指挥(者):负责安排构建过程,调用 Builder 的方法来构建对象。Product(产品):表示被构建的复杂对象。示例代码:使用 Builder 模式构建 Range 函数

以下代码示例展示了如何使用Builder 模式来构建一个 Range 函数,该函数接受 scale、min 和 max 三个参数,每个参数既可以是 double 类型的数值,也可以是接受 PVector 类型参数并返回 Double 类型的函数。

导入 processing.core.PVector;导入 java.io.IOException;导入 java.util.List;导入 java.util.function.Function;导入 java.util.stream.Stream;导入静态 processing.core.PApplet.map;导入静态 processing.core.PApplet.noise;公共类 RangeBuilderExample { public static void main(String... args) throws IOException { Listlt;PVectorgt; pvs = List.of(new PVector(0, 0)); Streamlt;Doublegt; s = pvs.stream().map(new RangeBuilder().scale(.02) .min(0) .max(255) .build()); Streamlt;Doublegt; s2 = pvs.stream().map(new RangeBuilder().scale(new RangeBuilder().scale(.02) .min(.1) .max(.002) .build()) .min(0) .max(255) .build()); } public static final class RangeBuilder { private Functionlt;PVector, Doublegt; scale; private Function

lt;PVector, Doublegt; min; private Functionlt;PVector, Doublegt; max; public RangeBuilder scale(Functionlt;PVector, Doublegt; scale) { this.scale = scale; return this; } public RangeBuilder scale(double scale) { return scale(in -gt; scale); } public RangeBuilder min(Functionlt;PVector, Doublegt; min) { this.min = min; return this; } public RangeBuilder min(double min) { return min(in -gt; min); } public RangeBuilder max(Functionlt;PVector, Doublegt; max) { this.max = max; return this; } public RangeBuilder max(double scale) { return scale(in -gt; scale); } public Functionlt;PVector, Doublegt; build() { return pv -gt; map(noise(pv.x * scale.apply(pv), pv.y * scale.apply(pv)), 0, 1, min.apply(pv), max.apply(pv)); } }}登录后复制

代码解释:RangeBuilder类:这是具体的Builder类,它包含了scale、min和max三个Function类型的属性,用于构建Range函数所需的参数。scale(Function scale)、min(Function min)、max(Function max)方法:这些方法用于设置scale、min和max属性的值,它们接受Function类型的参数。scale(doublescale)、min(double min)、max(doublescale)方法:这些方法是重载方法,用于设置scale、min和max属性的值,它们接受double类型的参数。在这些方法内部,我们将double类型的参数转换为Function类型,并调用对应的scale(Functionscale)、min(Function min)、max(Function max)方法。

build() 方法:该方法负责构建 Range 函数,将scale、min和max属性的值传递给map函数,并返回一个Function类型的函数。

使用示例:

在main方法中,我们首先创建了一个List类型的列表pvs,其中包含一个PVector对象。然后,我们使用RangeBuilder类来构建两个Range函数s和s2。s函数的scale参数设置为0.02,min 参数设置为 0,max 参数设置为 255。s2 函数的 scale 参数设置为另一个 Range 函数,该函数的 scale 参数设置为 0.02,min 参数设置为 0.1,max 参数设置为 0.002,min 参数设置为 0,max 参数设置为 255。

最后,我们使用 pvs.stream().map() 方法将s 和 s2 函数评估 pvs 列表中的每个 PVector 对象,将结果存储在 Stream 类型的流中。注意事项在 Builder 模式中,Builder 类通常被定义为静态内部类,以便更好地封装构建过程。Builder 模式可以与其他设计模式结合使用,例如,可以将 Builder 模式与工厂模式结合使用,以创建更复杂的对象。在示例代码中,我们使用了 double 类型来代替 float 类型,这是 double 是浮点数的默认类型。总结

Builder模式是一种非常有用的设计模式,它可以帮助我们构建复杂的对象,并提高代码的约束性和可维护性。在函数参数类型不确定的情况中,使用Builder模式可以避免创建大量重载方法或使用复杂的条件判断,从而使代码更加简洁易懂。通过可以使用Builder模式,我们更加灵活地处理动态参数类型,并构建出更加强大的函数。

以上就是动态类型处理:使用Builder模式构建灵活的函数的内容,更多请关注乐哥详细常识网其他相关文章!

动态参数类型处理:使
如何优化css性能 如何优化css样式提高网页性能
相关内容
发表评论

游客 回复需填写必要信息