1. 单一职责原则
单一职责原则,就一个类而言,应该仅有一个引起它变化的原因。
解释:
2. 开放-封闭原则
开放-封闭原则,是说软件实体(类、模块、函数等)应该可以扩展,但是不可修改。
解释:
3. 依赖倒转原则
A. 高层模块不应该依赖低层模块,两个都应该依赖抽象;
B. 抽象不应该依赖细节,细节应该依赖抽象。
解释:
4. 里氏代换原则
子类型必须能够替换掉它们的父类型。
解释:
5. 接口隔离原则: 接口小而专,避免大而全;
6. 迪米特法则:高内聚,低耦合;
1.创建型模式
2.结构型模式
3.行为型模式
需要:
(1)将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。
(2)在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型。
(3)定义一个静态方法返回这个唯一对象。
实现一:立即加载 / “饿汉模式”
“饿汉模式”的优缺点:
优点:实现起来简单,没有多线程同步问题。
缺点:当类SingletonTest被加载的时候,会初始化static的instance,静态变量被创建并分配内存空间,从这以后,这个static的instance对象便一直占着这段内存(即便你还没有用到这个实例),当类被卸载时,静态变量被摧毁,并释放所占有的内存,因此在某些特定条件下会耗费内存。
实现二:延迟加载 / “懒汉模式”
“懒汉模式”的优缺点:
优点:实现起来比较简单,当类SingletonTest被加载的时候,静态变量static的instance未被创建并分配内存空间,当getInstance方法第一次被调用时,初始化instance变量,并分配内存,因此在某些特定条件下会节约了内存。
缺点:在多线程环境中,这种实现方法是完全错误的,根本不能保证单例的状态。
package singletion;
/**
* @author WangXiaoeZhe
* @Date: Created in 2019/9/2 11:46
* @description:
*/
public class Singleton {
/**
* 饿汉式
*/
private static Singleton instance = new Singleton();
/* private Singleton(){}
static Singleton getInstance() {
return instance;
}*/
/**
* 懒汉式
*/
private static Singleton instence = null;
private Singleton() {
}
static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
适配器模式:将一个接口适配到另一个接口,Java I/O中InputStreamReader将Reader类适配到InputStream,从而实现了字节流到字符流的准换。
装饰者模式:保持原来的接口,增强原来有的功能。
FileInputStream 实现了InputStream的所有接口,BufferedInputStreams继承自FileInputStream是具体的装饰器实现者,将InputStream读取的内容保存在内存中,而提高读取的性能。
原文:https://www.cnblogs.com/wuhen8866/p/11867596.html