博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android设计模式之结构型模式
阅读量:6736 次
发布时间:2019-06-25

本文共 1408 字,大约阅读时间需要 4 分钟。

hot3.png

桥接模式

定义: 将抽象部分与它的实现部分分离,使它们都可以独立地变化.

/** * 抽象类 */public abstract class Implementor{    public abstract void operation();}/** * Implementor 派生类 ImplementorA */public class ImplementorA extends Implementor{    @Override    public void operation() {        System.out.println("classA");    }}/** * Implementor 派生类 ImplementorB */public class ImplementorB extends Implementor{        @Override    public void operation() {        System.out.println("classB");    }}public abstract class Abstraction{    protected Implementor implementor;        public void setImplementor(Implementor implementor){        this.implementor = implementor;    }    public abstract void operation();}public class RefinedAbstraction extends Abstraction{    @Override    public void operation() {        implementor.operation();    }}/** * 客户端代码 * @param args */public static void main (String[] args){    Abstraction abstraction = new RefinedAbstraction();    abstraction.setImplementor(new ImplementorA());    abstraction.operation();        abstraction.setImplementor(new ImplementorB());    abstraction.operation();}

使用状况:

1.不希望在抽象和它的实现之间有一个固定的绑定关系时.

2.类的抽象以及他的实现都应该可以通过生成子类的方法加以扩充时.

3.对一个抽象类的实现部分的修改应该对客户不产生影响时.

适配器模式

定义: 将一个类的接口转换成客户希望的另外一个接口

适用范围: 当想要使用一个已经存在的类,但是该类的接口不符合现有的要求时.

               当需要创建一个可以被复用的类,该类能够与其他无关的类甚至无法预见的类协同工作时.

               当需要使用一些已经存在的子类,但是不可能对所有的都进行子类化以匹配它们的接口时,对象适配器可以对其父

               类接口进行适配.

转载于:https://my.oschina.net/u/942298/blog/381330

你可能感兴趣的文章
常用的Web服务器
查看>>
UPW学习资料整理 .NET C# 转
查看>>
Oracle12c中新建用户
查看>>
分布式编译工具
查看>>
对我而言晦涩的递归
查看>>
React Native 从入门到原理
查看>>
iOS如何随意的穿插跳跃,push来pop去
查看>>
使用maven编译Java项目 http://www.tuicool.com/articles/YfIfIrq
查看>>
【原创】JDK动态代理,此次之后,永生难忘。
查看>>
collection的框架结构
查看>>
c++中的对象复制
查看>>
ubuntu下linux内核源码阅读工具和调试方法总结
查看>>
PHP生成UTF-8编码的CSV文件用Excel打开乱码的解决办法
查看>>
IOS-5个可以帮你优化App的优秀网站
查看>>
ArrayIndexOutOfBoundsException
查看>>
JAVA判断各种类型数据是否为空
查看>>
如何使用kali的Searchsploit查找软件漏洞
查看>>
Vim for Rails developers: Lazy modern configuration
查看>>
十三、Android studio环境的搭建
查看>>
ES6 系列之模板字符串
查看>>