1、组合模式
说到常用的设计模式,作者本人第一个相当的就是组合模式!组合模式真的好啊,用我自己的理解,什么时候要用组合模式,只要你的功能里出现了树状结构,那么用它!组合模式完美做到了牵一发动全身,只要调用最外层的节点,就可以做到调用这个节点下的所有子节点,牵一发动全身!组合模式主要就是三个核心点,抽象类(接口)、节点类、叶子节点,下面是作者自己写的demo,
抽象类:
import lombok.Data;
import java.util.List;
@Data
public abstract class Componment {
private String id;
private String name;
public abstract List<Componment> getDirectory();
public abstract void add(Componment componment);
}
节点类:
import java.util.ArrayList;
import java.util.List;
public class Composite extends Componment {
private List<Componment> directory = new ArrayList<Componment>();
public void add(Componment cp) {
directory.add(cp);
}
public void remove(Componment cp) {
directory.remove(cp);
}
@Override
public List<Componment> getDirectory() {
return directory;
}
}
叶子节点类:
import java.util.Collections;
import java.util.List;
public class Leaf extends Componment {
@Override
public List<Componment> getDirectory() {
return Collections.emptyList();
}
@Override
public void add(Componment componment) {
}
}
2、观察者模式
观察者模式也叫发布-订阅模式,其实现很简单核心就两个类,一定要使用jdk自带工具类实现!!
实现Observer接口的是订阅者,实现Observable的是发布者,将订阅者全部作为发布者的属性,发布者更新的时候遍历订阅者执行更新方法即可!
使用场景:一个对象做出改变的时候,多个对象需要做出相应的反应,作者在实际开发场景中暂未使用过。