android开发装饰者模式

1.

package test;

interface Dongwu {
    void eat();
}

2.

package test;

public class Gou implements Dongwu{
    public void eat() {
        // TODO Auto-generated method stub
        System.out.println("我是小狗");
    }

}

3.

package test;

public class Mao implements Dongwu{

@Override
    public void eat() {
        // TODO Auto-generated method stub
        System.out.println("我是小猫");
    }
    
}

4.

package test;

public class ADongwu implements Dongwu{
    private Dongwu dongwu;
    public ADongwu(Dongwu dongwu) {
        // TODO Auto-generated constructor stub
        this.dongwu = dongwu;
    }
    @Override
    public void eat() {
        // TODO Auto-generated method stub
        System.out.println("A家的动物吃饭前要先跑一跑");
        dongwu.eat();
    }
    
}

5.

package test;

public class BDongwu implements Dongwu{
    private Dongwu dongwu;
    public BDongwu(Dongwu dongwu) {
        // TODO Auto-generated constructor stub
        this.dongwu = dongwu;
    }
    @Override
    public void eat() {
        // TODO Auto-generated method stub
        System.out.println("B家的动物吃饭先要先跳一跳");
        dongwu.eat();
    }

}

6.

package test;

public class Test {
    public static void main(String args []) {
        Gou gou = new Gou();
        ADongwu a = new ADongwu(gou);
        a.eat();
        
        Gou gou2 = new Gou();
        BDongwu b = new BDongwu(gou2);
        b.eat();
    }
}

时间: 2024-11-04 02:13:17

android开发装饰者模式的相关文章

Android开发之策略模式初探

策略模式主要定义一系列的算法,学过数据结构的朋友肯定知道,对于数组从大到小进行排序有着很多的算法,比如冒泡.交换.快速插入等等,策略模式就是把这些算法封装成一个个独立的类,方便使用时候进行任意的调用.这里以字符串替代为例, 有一个文件,我们需要读取后,希望替代其中相应的变量,然后输出.关于替代其中变量的方法可能有多种方法,这取决于用户的要求,所以我们要准备几套变量字符替代方案. 首先,我们建立一个抽象类RepTempRule 定义一些公用变量和方法: public abstract class

Android开发之工厂模式初探

工厂模式(Factory)是比较常见的一种模式我觉得也是一种非常容易理解的一种模式,举个简单的例子吧,我们小时候经常考试,每次最害怕的就是爸妈问考试试卷的分数,不同的分数我们的心情也是不一样的.那么我们就根据这个情况以工厂模式写一个Java程序. public class Factory { public static Student_test creator(String rank){ if(rank.equals("优秀")){ return new Student_Laugh()

Android开发中MVP模式浅析

目前为止,MVP的使用还没有一个标准,在此先记录一下目前学习到的一些Android中使用MVP的知识. 按传统的方式开发,经常会使Activity中混杂着UI交互,业务逻辑等流程.而MVP模式能巧妙的解决这个问题.先直接上一个小例子吧. /** * 定义一个对UI组件进行操作的接口,让Activity实现这个接口 * @author Quinn * @date 2015-5-9 */ public interface LoginView { public void showProgress();

Android开发之模板模式初探

模板模式我认为在Android的开发中是最长用到的,基本是随处可见的,认识该模式,有助于我们对Android的源代码及框架有一个更深层次的认识.那什么是模板模式呢,模板模式就是定义一个基本框架,将当中的一些方法延迟到子类中运行实现.就比方我们去餐馆吃饭,基本步骤肯定为找到座位,点菜,上菜,吃饭,买单五个过程,当中点菜这个过程是可变的,我们点的菜可多可少,其它都是固定的,那么我们就能够写在一个固定的抽象类里形成一个基本框架,我们的子类继承该抽象类,对当中可变的方法进行复写. 以下我们就来看一个样例

Android开发学习--MVP模式入门

1.模型与视图完全分离,我们可以修改视图而不影响模型2.可以更高效地使用模型,因为所有的交互都发生在一个地方--Presenter内部3.我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑.这个特性非常的有用,因为视图的变化总是比模型的变化频繁.4.如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试) 下面示例一个小案例: 项目架构: 首先bean层: User.java public class User { privat

Android开发最佳实践

这些经验没有经过系统性的梳理,想到哪就写到哪吧: 1.Android开发的MVC模式,或者MVVM模式 客户端开发,主要工作是界面及逻辑,如果界面相关的代码和逻辑相关的代码耦合太多,很不容易重构,在美团这一个月来,大家基本形成了一套行之有效的开发范式, 即界面元素如果不需要生命周期的话,一律已自定义view来实现,如果需要生命周期,则用fragment来实现. 1.Activity是界面的容器,负责界面的创建,刷新,不要在Activity中做过多的逻辑.对于Activity之间的跳转处理请放到A

java/android 设计模式学习笔记(7)---装饰者模式

这篇将会介绍装饰者模式(Decorator Pattern),装饰者模式也称为包装模式(Wrapper Pattern),结构型模式之一,其使用一种对客户端透明的方式来动态的扩展对象的功能,同时它也是继承关系的一种替代方案之一,但比继承更加灵活.在现实生活中也可以看到很多装饰者模式的例子,或者可以大胆的说装饰者模式无处不在,就拿一件东西来说,可以给它披上无数层不一样的外壳,但是这件东西还是这件东西,外壳不过是用来扩展这个东西的功能而已,这就是装饰者模式,装饰者的这个角色也许各不相同但是被装饰的对

Builder模式详解及其在Android开发中的应用

一.引言 在Android开发中,采用Builder模式的代码随处可见,比如说Android系统对话框AlertDialog的使用或者是Android中的通知栏(Notification)的使用,又比如说在一些常用的第三方库中也随处可见其踪迹,比如说一些常用的网络请求库如OkHttp或者是retrofit,又或者是图片加载库Glide中也不缺乏它的应用. 为什么Builder模式在Android或是Java开发中这么火呢?因为它相较于构造函数或者是Get/Set方法,它的灵活性和封装性上都比较有

MVP模式在Android开发中的应用

一.MVP介绍 随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互.同一时候让Model仅仅关系数据的处理.基于MVC概念的MVP(Model-View-Presenter)模式应运而生. 在MVP模式里通常包括4个要素: (1)View:负责绘制UI元素.与用户进行交互(在Android中体现为Activity); (2)View interface:须要View实现的接口,V