Java设计模式

1.设计原则简述

设计原则分为:

  1. 开闭原则:对扩展开放,对修改关闭—就是说现在我们系统正在运行,现在要新增一个需求,尽量不要在原来平稳运行的地方修改,最好扩展一个功能模块出来
  2. 里氏替换原则:继承一个父类的时候尽量去添加新的方法去完成我们的需求,最好不要去重写父类的方法去完成需求
  3. 依赖倒置原则:尽量面向接口编程,降低程序之间的耦合性
  4. 单一职责原则:一个方法最好做一件事情,提高内聚性
  5. 接口隔离原则:为各个类建立它们专用的接口来提供服务,降低耦合性,提高内聚性
  6. 迪米特法则:只与你的直属类交互,例如 有ABC三个类,A B是直属类,现在A想和C交互,那么A最好是和B交互然后由B去通知C
  7. 合成复用原则:尽量使用组合和聚合关系实现,最后再考虑继承

这些只是原则,尽量遵守,具体实现还要以系统架构的健壮性来做参考。

2.单例模式

单例模式就是只有一个实例对象,在一个类中始终只有一个对象进行操作,这样可以极大减少内存的开支和系统性能消耗,

应用场景:数据库连接类,只需要创建一个对象或直接使用静态方法就可以,没必要创建多个对象

注意事项:

  • 单例类必须构造方法私有化
  • 单例类必须自己创建自己的唯一实例
  • 单例类必须给所有其他对象提供创建的实例

饿汉式:最普通的单例模式写法

优点:保证线程安全

缺点:容易产生垃圾对象消耗空间

/**
 * 单例模式-饿汉
 */
public class SingleTest {
    /**
     * 单例模式核心-构造方法私有化
     */
    private SingleTest(){}
    /**
     * 用全局引用唯一单例对象
     */
    private final static SingleTest singleTest=new SingleTest();
    /**
     * 获取全局唯一的单例对象
     */
    public static SingleTest getInstance(){
        return singleTest;
    }}

懒汉式:为了避免饿汉式出现的类创建不被使用造成的资源浪费问题,懒汉式只有用到的时候才创建对象

优点:避免了创建对象不适用的资源消耗问题

缺点:线程不安全,多线程环境下容易判空失效

/**
 * 单例模式-懒汉
 */
public class SingleTest {
    /**
     * 单例模式核心,构造方法私有化
     */
    private SingleTest(){}
    /**
     * 懒汉式- 开始不创建对象
     */
    private static SingleTest singleTest;
    /**
     * 获取全局唯一单例对象,使用时创建对象
     */
    public static SingleTest getInstance(){
        if (singleTest==null){ //判断实例为空就创建,否则不创建对象,避免了资源消耗
            singleTest=new SingleTest();
        }
        return singleTest;
    }
}

未完。。。待续 

 

 

你可能感兴趣的:(设计模式,java)