Java设计模式(5)--适配器模式

适配器模式主要是用于补救的,为什么这么说呢,拿上一章的观察者模式来说:
1、jdk中的观察者Observer,是一个接口,如果我们有一个类Male,要实现观察者的功能,那么直接实现Observer接口即可,但是,如果需要是,既要有Observer的功能,也要有User(另一个类)的功能,我们要怎么做呢?这里,类适配器就发挥作用了

public class Male extends User implement Observer{
}

只需要继承目标类,实现Observer接口,就实现了我们上述的目的,这种适配器叫做类适配器。

2、jdk中的被观察者Observable是一个类,与上面的需求类似,我们的Male类,需要有Observable被观察者的功能,又要具有User类的功能,那这怎么办?这里最好不要让User去继承Observable类,这将破环原有的继承体系。由于Java继承只允许继承一个类,我们使用类适配器将无法满足我们的需求,那么,就要使用对象适配器了。

class Male extends User{
    private Observable observable;

    //get set方法
}

这就是对象适配器,采用组合的模式,这样,User和Observable两个类的功能我们都可以使用了。当然,这里不是最好的方式,因为实际需求中不仅仅只有一个Male类,可能还有其他类需要有类似的需求,我们重复这样定义实在是太麻烦了,所以,我们定义一个公共的类,作为一个适配器,Male类直接继承这个公共的适配器就能够满足需求了。

class BaseUserObservable extends User{
    private Observable observable;

    //get set方法
}

class Male extends BaseUserObservable {
}

这样就是对象适配器了。

根据目的的不同,还可以分为 定制适配器和缺省适配器。上面所说的,是目的性很强的,需要实现什么什么功能,就是定制适配器,而缺省适配器,作用是在我们实现某些接口时,省去一些不需要的方法,比如:

interface A{

    public void method1();
    public void method2();
    public void method2();

}

有一个接口A,有三个方法,假设,我们有个类C,需要继承A,则必须重写这三个方法,这时候,假设我们值真正使用到的只有method1,那么另外两个方法的代码就显得冗余了,这时候可以使用缺省适配器。

class B implement A{

    public void method1(){}
    public void method2(){}
    public void method2(){}

}

那么,我们的类C,只需要继承B,然后重写我们需要的方法即可

class C extends B {
    public void method1(){
        ...
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java设计模式是一组经过实践验证的面向对象设计原则和模式,可以帮助开发人员解决常见的软件设计问题。下面是常见的23种设计模式: 1. 创建型模式(Creational Patterns): - 工厂方法模式(Factory Method Pattern) - 抽象工厂模式(Abstract Factory Pattern) - 单例模式(Singleton Pattern) - 原型模式(Prototype Pattern) - 建造者模式(Builder Pattern) 2. 结构型模式(Structural Patterns): - 适配器模式(Adapter Pattern) - 桥接模式(Bridge Pattern) - 组合模式(Composite Pattern) - 装饰器模式(Decorator Pattern) - 外观模式(Facade Pattern) - 享元模式(Flyweight Pattern) - 代理模式(Proxy Pattern) 3. 行为型模式(Behavioral Patterns): - 责任链模式(Chain of Responsibility Pattern) - 命令模式(Command Pattern) - 解释器模式(Interpreter Pattern) - 迭代器模式(Iterator Pattern) - 中介者模式(Mediator Pattern) - 备忘录模式(Memento Pattern) - 观察者模式(Observer Pattern) - 状态模式(State Pattern) - 策略模式(Strategy Pattern) - 模板方法模式(Template Method Pattern) - 访问者模式(Visitor Pattern) 4. 并发型模式(Concurrency Patterns): - 保护性暂停模式(Guarded Suspension Pattern) - 生产者-消费者模式(Producer-Consumer Pattern) - 读写锁模式(Read-Write Lock Pattern) - 信号量模式(Semaphore Pattern) - 线程池模式(Thread Pool Pattern) 这些设计模式可以根据问题的特点和需求来选择使用,它们提供了一些可复用的解决方案,有助于开发高质量、可维护且易于扩展的软件系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值