笔试总结(One)
面向对象的五大基本原则
- 单一职责原则(SRP)
一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。 - 开放封闭原则(OCP)
软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的 - 里氏替换原则(LSP)
子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。 - 依赖倒置原则(DIP)
依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。 - 接口隔离原则(ISP)
使用多个小的专门的接口,而不要使用一个大的总接口
单例模式
饿汉式加载
1 | package com.nyist.singleton; |
懒汉式
什么时候需要什么时候加载1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20package com.nyist.singleton;
/**
* 懒汉式
*/
public class SingletonDemo2 {
private static SingletonDemo2 s;
private SingletonDemo2(){
}
public static synchronized SingletonDemo2 getInstance(){
if(s == null){
s = new SingletonDemo2();
}
return s;
}
}
静态内部类实现方式
1 | package com.nyist.singleton; |
枚举方式(没有懒加载的功能)
1 | package com.nyist.singleton; |