简述Java开发设计六大基本原则,读取配置文件的三大方式


一、设计模式之六大原则

  1. 单一职责原则

    单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。
    
  2. 开放-封闭原则

    开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
    
  3. 里氏代换原则

    里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。
    
  4. 依赖倒置原则

    依赖倒转原则(Dependency Inversion  Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
    
  5. 接口隔离原则

    接口隔离原则(Interface  Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
    
  6. 迪米特法则

    迪米特法则(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"));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贫僧洗发爱飘柔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值