可修改性
优点 缺点
优点,它使得系统更容易进行变更,从而使得系统更加灵活和适应性更强。这样,当用户的需求发生变化时,系统可以快速地进行调整,以满足用户的需求。
缺点。首先,如果系统设计不良,则可能会导致代码耦合度过高,从而导致代码难以维护和扩展。其次,如果系统中存在大量的重复代码,则可能会导致代码冗余和可读性差。最后,如果系统中存在大量的依赖关系,则可能会导致代码难以理解和调试
局部修改
定义
局部修改定义在编程中是指对于一个变量或者对象的定义进行修改,只在特定的范围内生效。
生活中的例子:修图,修修身子,修修脸
-
在SpringBoot中,我们经常需要对一些配置参数进行修改,比如数据库连接、端口号、日志级别等。这时候,我们可以使用application.properties或application.yml文件来全局配置这些参数。但是,如果我们想要对某些特定的类或者组件进行局部配置,比如给静态变量赋值,那么我们就需要使用@Value注解来实现。
-
例如,如果我们想要给一个静态变量name赋值为Gavin,并且让这个值可以在配置文件中修改,我们可以使用@Value注解来实现。首先,在application.properties文件中添加一行配置:name=Gavin
@Value("${name}")
public void setName(String name) {
Entity.name = name;
}
public static String getName() {
return name;
}
防止连锁反应
定义
防止连锁反应是指在软件开发过程中,通过一些技术手段来避免因为修改一个模块而导致其他模块也需要修改的情况。这种情况被称为连锁反应。
防止连锁反应:第一个想到是物理中核裂变,因为他可以自发产生中子,中子去轰击其他原子,原子再产生中子,这是一个链式反应,为了改变反应速度我们加入了控制棒。
控制棒就又像中介者,比如学生选课(一对多关系)学生是学生类 ,课程是课程类 ,然后再写一个类写选课方法。不会说学生直接调用课程类的方法进行选课。
public class Main {
public static void main(String[] args) {
try {
int[] arr = {1, 2, 3};
System.out.println(arr[3]);
} catch (Exception e) {
System.out.println("An error occurred.");
}
}
}
推迟绑定时间
定义
推迟绑定时间定义是指在程序运行时,将函数调用的绑定推迟到第一次调用该函数时进行,而不是在程序启动时进行。
看到定义有点像懒加载。
Java中的反射机制可以在运行时动态地获取类的信息并调用类中的方法,从而实现推迟绑定时间
public class Test {
public static void main(String[] args) {
// 创建一个对象
Person person = new Person();
// 获取Person类的Class对象
Class clazz = person.getClass();
// 获取Person类中的所有方法
Method[] methods = clazz.getDeclaredMethods();
// 遍历所有方法
for (Method method : methods) {
System.out.println(method.getName());
}
}
}
class Person {
public void sayHello() {
System.out.println("Hello World!");
}
}
如何保证可修改性
保证软件的修改性,需要在软件开发的各个阶段和层面上采取一些措施和方法,包括:
在需求分析阶段,要充分了解用户的需求,避免需求变更带来的修改成本
在系统设计阶段,要选择合适的设计方法和模式,保证系统的可扩展性、可配置性和可移植性
在实现阶段,要遵循编码规范,使用抽象接口、降低模块之间的耦合度
在测试阶段,要设计完善的测试用例和自动化测试工具,覆盖正常逻辑、边界条件和其他功能
在发布阶段,要制定可回滚的发布方案,保证新版本和旧版本的兼容性
在维护阶段,要进行结构化维护,包括完善性维护、纠错性维护、适应性维护和预防性维护
在文档管理方面,要编写清晰的文档说明软件的功能、接口、配置、变更等信息,并及时更新文档
在质量管理方面,要采用质量保证标准、软件评审、监控报警等手段,检查软件的规格说明、可靠性、性能实现、可修改性等质量属性,并及时发现并解决问题
标签:定义,Person,修改,可修改性,public,name From: https://www.cnblogs.com/shuangshuangzi/p/17247319.html