概述
装饰者
具体实现
一个基类有多个子类,子类之间有自己的方法,但它们都组合了基类,在构造方法中把最新的基类对象(实际上是子类,使用了多态)传入,并做出相应的修改,然后再赋给基类对象,这样其它类也可以使用构造方法接入并修改
好处
在不添加原有类的情况下复用类,达到叠加的效果。
代码演示(均为博主手写,无idea检验,所以有错请包容!)
public class Test{
public static void main(String[] args){
//要两份肉,一份菜
Order order = new Order();
order = new OrderMeat(order);
order = new OrderVegetable(order);
System.out.println("订单上要求"+need);
}
}
class Order{
String need="";
}
class OrderMeat extends Order{
Order order;
public OrderMeat(Order order){
this.order=order;
}
public void addNeed(String need) {
order.need+=need;
}
}
class OrderVegetable extends Order{
Order order;
public OrderVegetable(Order order){
this.order=order;
}
public void addNeed(String need) {
order.need+=need;
}
}
适配器
具体实现
两个实现相同接口的类,其中一个类并没有真正实现接口,而是组合真正实现接口的类,并在相应的接口方法体中调用了实现类的方法,类似于静态代理。
好处
源代码已经写好,但外部接口方法名不一致时,可以使用适配器使得源代码正常调用外部接口而不需要修改
代码演示
Interface MonitorDevice{
public void open();
}
public void MonitorAdapter implements MonitorDevice{
MonitorSoft monitorSoft;
public MonitorAdapter(MonitorSoft monitorSoft){
this.monitorSoft=monitorSoft;
}
public void open(){
monitor.begin();
}
}
public void MonitorSoft{
public void begin(){
System.out.println("电子设备已经启动");
}
}
最后
以上就是不安大叔为你收集整理的装饰者和适配器装饰者适配器的全部内容,希望文章能够帮你解决装饰者和适配器装饰者适配器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复