硬编码和非硬编码是指软件开发中配置数据和变量处理方式的概念。
硬编码(Hardcoding): 硬编码是指在程序代码中直接写入具体的数据、配置信息或常量,而不是通过外部配置文件、数据库或用户输入来获取。硬编码使得修改这些值时需要直接更改代码并重新编译程序。这通常被认为是一种不良的编程实践,因为它违反了可维护性、灵活性和可扩展性原则。
例如,如果你在代码中直接指定了数据库的连接字符串,那么当你需要更换数据库服务器时,就需要修改代码并重新部署应用程序。
Java 中硬编码的示例:
public class HardcodedExample {
private static final String DATABASE_URL = "jdbc:mysql://localhost:3306/mydatabase";
// 其他代码...
}
非硬编码(Non-Hardcoding): 非硬编码是指通过外部配置文件、环境变量、命令行参数、数据库或用户输入等方式来设置和获取程序中使用的数据和配置信息。这样做的好处是,修改配置时无需更改程序本身的代码,只需修改外部资源即可,提高了程序的灵活性和可维护性。
Java 中非硬编码的示例(使用属性文件):
database.properties
文件:
database.url=jdbc:mysql://localhost:3306/mydatabase
Java 代码中读取属性文件:
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class NonHardcodedExample {
private String databaseUrl;
public NonHardcodedExample() {
Properties properties = new Properties();
try {
properties.load(new FileInputStream("database.properties"));
databaseUrl = properties.getProperty("database.url");
} catch (IOException e) {
e.printStackTrace();
}
}
// 其他代码...
}
在上述非硬编码的示例中,如果数据库URL发生变化,只需修改database.properties
文件中的database.url
属性值,而无需更改和重新编译Java代码。这大大提高了应用程序的灵活性,使得维护和配置更新更加简单。