外观模式(Facade)
外观模式本质上是将细节封装起来,使用者只需要调用”门面“即可
定义接口:
public interface Operate {
void eat();
}
被操作对象,实现接口和方法:
public class Stu2 implements Operate {
@Override
public void eat() {
System.out.println("学生2吃饭");
}
}
门面:
public class Manager implements Operate {
@Override
public void eat() {
new Stu1().eat();
new Stu2().eat();
new Stu3().eat();
}
}
使用:
public class MyClass {
public static void main(String[] args){
Manager manager=new Manager();
manager.eat();
}
}
桥接模式(Bridge)
通过将对象的实现分离达到解耦的目的。
这里用图形和颜色举例。
颜色接口:
public interface Color {
String colorValue();
}
颜色实现类:
public class White implements Color {
@Override
public String colorValue() {
return "白色";
}
}
图形抽象类:
public abstract class Shape {
protected Color color;
public Shape(Color color){
this.color=color;
}
public abstract void draw();
}
图形实现类:
public class Trangle extends Shape {
public Trangle(Color color) {
super(color);
}
@Override
public void draw() {
System.out.println(color.colorValue()+"三角形");
}
}
使用:
public class MyClass {
public static void main(String[] args) {
White white = new White();
Trangle trangle = new Trangle(white);
trangle.draw();
}
}