7/28 、
设计模式
设计 是把一种设想通过合理的规划、周密的计划、通过各种方式表达出来的过程。
设计模式概述
单例模式 Singleton
工厂模式 Factory
建造者模式 Builder
代理模式 Proxy
策略模式 Strategy
装饰器模式 Decorator
观察者模式 Observer
责任链模式 Chain of Responsibility
设计模式的六大原则
单一职责原则(Single Responsibility Principle, SRP):
一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。
开闭原则(Open-Closed Principle, OCP)
一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
里氏替换原则(Liskov Substitution Principle, LSP)
所有引用基类(父类)的地方必须能透明地使用其子类的对象。
依赖倒置原则(Dependency Inversion Principle, DIP)
抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
接口隔离原则(Interface Segregation Principle, ISP)
使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
迪米特法则(Law of Demeter, LoD)
一个软件实体应当尽可能少地与其他实体发生相互作用
设计模式分类
单例模式
目标:保证一个类只有一个实例
实现:
不可被外部创建 => private 构造器
限制外部访问方式 => 提供一个公开的静态方法
内部保证实例唯一 => 静态属性持有
//饿汉,创建类时创建单例,线程不安全 (不管需不需要,都创建)
public class SingletonHungary{
private static final SingletonHungary instance=new SingletonHungary();
private SingletonHungary(){}
private static SingletonHungary getInstance(){
return instance;
}
}
package me.maiz.se.mini.deignpattern;/** * 懒汉式单例,需要时创建单例(线程不安全版本) */
public class SingletonLazy{
private static SingletonLazy instance ;
private SingletonLazy(){}
public static SingletonLazy getInstance() { if(instance==null){
instance=new SingletonLazy();
}
return instance;
}
}
工厂模式
后续的内容再资源里面找一下哈,免费提供学习~ 盘他,设计模式~