设计模式
单例模式【Singleton】
定义:确保全局最多只有一个对象
适用:构建缓慢的对象;需要统一管理的资源
优点:1.减少内存的占用
2.单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。
3.因为类控制了实例化过程,所以类可以灵活更改实例化过程
缺点:1.很多全局状态 2. 线程安全性问题
创建:
1.双重锁模式【详解】
将同步内容下放到if内部,提高了执行的效率,不必每次获取对象时都进行同步,只有第一次才同步,创建了以后就没必要了
2.作为 Java 类的静态变量
3.使用框架提供的能力
变继承关系为组合关系
继承关系
1.描述 is-a 的关系
2.不要用继承关系来实现复用,要使用设计模式来实现复用
例 将Employee 变为 Manager
代码:state(状态)模式【详解】
Role.java
package interview.designpattern.company;
public interface Role {
void doWork();
}
Engineer.java
package interview.designpattern.company;
public class Engineer implements Role {
@Override
public void doWork() {
System.out.println("Doing engineer work.");
}
@Override
public String toString() {
return "Engineer";
}
}
Employee.java
package interview.designpattern.company;
import java.util.List;
import java.util.Objects;
public class Employee {
public static List<Employee> allEmployees;
private final String name;
private final int salary;
private Role role;
public Employee(String name, int salary, Role role) {