Java 中函数式编程与面向对象编程的优缺点对比
在 Java 中,函数式编程 (FP) 和面向对象编程 (OOP) 提供了不同的范例,每种范例都有其优势和劣势。
函数式编程的优点:
面向对象编程的优点:
实战案例:
函数式编程:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class FPExample {
public static void main(String[] args) {
List names = Arrays.asList("John", "Jane", "Alice", "Bob");
// 使用 Stream 对列表进行过滤和映射
List filteredNames = names.stream()
.filter(name -> name.startsWith("J"))
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println(filteredNames); // 输出:[JOHN, JANE]
}
} 面向对象编程:
public class OOPExample {
private String name;
public OOPExample(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void
setName(String name) {
this.name = name;
}
public String toString() {
return "OOPExample{name='" + name + "'}";
}
public static void main(String[] args) {
OOPExample person1 = new OOPExample("John");
person1.setName("Jane");
OOPExample person2 = new OOPExample("Alice");
List people = Arrays.asList(person1, person2);
// 使用传统的循环迭代列表
for (OOPExample person : people) {
System.out.println(person);
}
}
}