1、常见设计原则:开闭原则和接口分离原则
1)开闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即对类的改动是通过增加代码实现的,而不是修改原有代码来实现的。
2)接口分离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。即不应该吧所有的功能都放在一个接口功能里面。
2、常见的设计模式:工厂模式、单例模式
1)工厂模式可分为三种:简单工厂模式(Simple Factory) 、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory) ;这三种模式从前至后逐步抽象,并且更具一般性。
工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。
区别:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。
2)单例模式:单例模式核心思想:某些类的对象在创建的时候 ,在系统内存始终只有一个对象!(属于创建型模式)
单例模式分类:
1)饿汉式 2)懒汉式(类似于多线程环境..)
饿汉式:
在加载那个类的时候,对象的创建工作就已经完成了!
懒汉式:(可能会出现问题,可用同步机制解决)
符合单例模式核心思想
1)自定义一个类,将无参构造私有化
2)在成员位置声明变量
3)提供公共静态功能,在里面判断的创建该类对象,返回该类对象
两种分类在设计上几乎一样:
1)定义个类,将该类的无参构造方法私有化
2)在该类的成员位置创建该类对象 并且一定要私有化,防止外界更改这个对象
3)在该类中提供静态成员方法(返回值就是创建的那个对象),能被当前类直接调用,static修饰
使用设计单例的懒汉式,使用同步机制解决线程的安全问题..
懒汉式(延迟加载 -->懒加载)
可能会出现问题
---> 多线程的问题
--->校验多线程安全问题的标准
1)是否是多线程环境
2)是否有共享数据
3)是否有多条语句对共享数据进行操作 (使用同步机制进行操作)