文章目录
一、设计模式之六大原则二、常用获取路径方式三、读取配置文件的三大方式1.通过IO流读取配置文件,再通过Properties类中的方法获得2.对第一种方式的简化3.通过资源绑定器
一、设计模式之六大原则
单一职责原则
单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。
开放-封闭原则
开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
里氏代换原则
里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。
依赖倒置原则
依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
接口隔离原则
接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
迪米特法则
迪米特法则(Law of Demeter, LOD):一个软件实体应当尽可能少地与其他实体发生相互作用。
二、常用获取路径方式
File f = new File(this.getClass().getResource("/").getPath());获取当前类的所在工程路径;
File f = new File(this.getClass().getResource("").getPath()); 获取当前类的绝对路径;
URL xmlpath = this.getClass().getClassLoader().getResource("selected.txt"); 获取当前工程src目录下selected.txt文件的路径
System.out.println(System.getProperty("user.dir")); 获取当前工程路径
System.out.println( System.getProperty("java.class.path")); 获取当前工程路径bin下
String courseFile = new File("").getCanonicalPath() ; 获取当前类的所在工程路径;
Thread.currentThread().getContextClassLoader().getResource("db.properties").getPath());获取类路径下的文件 (文件必须在src下)
三、读取配置文件的三大方式
1.通过IO流读取配置文件,再通过Properties类中的方法获得
public class Text01 {
public static void main(String
[] args
) throws IOException
{
FileInputStream stream
= new FileInputStream(Thread
.currentThread().getContextClassLoader().getResource("db.properties").getPath());
Properties properties
= new Properties();
properties
.load(stream
);
String classname
= properties
.getProperty("classname");
System
.out
.println(classname
);
}
}
2.对第一种方式的简化
public class Text01 {
public static void main(String
[] args
) throws IOException
{
InputStream stream
= Thread
.currentThread().getContextClassLoader().getResourceAsStream("db.properties");
Properties properties
= new Properties();
properties
.load(stream
);
String classname
= properties
.getProperty("classname");
System
.out
.println(classname
);
}
}
3.通过资源绑定器
java为我们提供了一个资源绑定器,只能绑定properties文件,并且文件必须在类路径下
java.util.ResourceBundle
public class Text01 {
public static void main(String
[] args
) throws IOException
{
ResourceBundle db
= ResourceBundle
.getBundle("db");
System
.out
.println(db
.getString("classname"));
}
}