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

    科技2022-07-11  90

    文章目录

    一、设计模式之六大原则二、常用获取路径方式三、读取配置文件的三大方式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")); } }
    Processed: 0.015, SQL: 8