缺省适配器
Posted hebiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缺省适配器相关的知识,希望对你有一定的参考价值。
Adapter-结构型模式的一种
解决 一个接口(规则)定义了很多方法,这个接口有很多子实现类,如果因为需求改变需要对某个或某几个子实现添加新的规则,那么由于都实现自一个接口,其它类也需要全部做修改。
故我们使用一个适配器(通常是一个抽象类),作为接口与具体实现类的一个桥梁,我们把规则都放在接口里,具体需要哪些方法则通过这个抽象类来筛选,不需要的就将它空实现(抛出异常),如果某条规则只适用某分支,就添加到对应适配器(抽象类)里面而不丢在接口里。
public interface Person { //原本的 void haircut(); void dressing(); //扩展的 void cosmetology(); } public abstract class ManAdapter implements Person { @Override public abstract void haircut(); @Override public abstract void dressing(); @Override public void cosmetology() { // TODO Auto-generated method stub //可以抛出一个自定义异常 } } public abstract class WomanAdapter implements Person{ @Override public abstract void haircut(); @Override public abstract void dressing(); @Override public abstract void cosmetology();//通过接口扩展的 public abstract void Manicure();//通过适配器扩展的 } public class Man extends ManAdapter { public void haircut() { // TODO Auto-generated method stub System.out.println("男生,理发只要十块钱"); } @Override public void dressing() { // TODO Auto-generated method stub System.out.println("男生,随便穿就好啦"); } } public class Woman extends WomanAdapter { @Override public void haircut() { // TODO Auto-generated method stub System.out.println("我是女生,需要花很长时间理发"); } @Override public void dressing() { // TODO Auto-generated method stub System.out.println("我是女生,今天就穿小裙子"); } @Override public void cosmetology() { // TODO Auto-generated method stub System.out.println("今天休假,去做美容"); } @Override public void Manicure() { // TODO Auto-generated method stub System.out.println("做指甲"); } }
以上是关于缺省适配器的主要内容,如果未能解决你的问题,请参考以下文章