装饰设计模式一

一、概念

当想要对已有的对象进行功能增强时,可以自定义类,将已有对象传入,基于现有的功能,并加强功能。

装饰类通常会通过构造方法接受被修饰的对象。

二、例子

class Person

{

public void eat(){

sysout(“I am eating”);

}

}

class PersonDemo

{

main(){

Person p = new Person();

p.eat();

}

}

class SuperPeron{

private Person p;

SuperPerson(Person p){

this.p = p;

}

public void  superEat(){

sysout(“1.开胃菜”);

sysout(“2.吃饭”);

}

}

装饰设计模式一

时间: 2024-10-29 17:54:50

装饰设计模式一的相关文章

使用装饰设计模式加密数据

使用装饰设计模式加密数据: package com.zs.JiaJiE09; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; /** * 使用装饰设计模式把数据取反进行加密解密 * Key方法为钥匙 * * @author LZG * */ public class JMOutputStream extends OutputStream{ /** * 更多资料欢迎浏

装饰设计模式

装饰设计模式概述 装饰模式就是使用被装饰类的一个子类的实例,在客户端将这个子类的实例交给装饰类,是继承的替代方案 优点 使用装饰模式,可以提供比继承更灵活的扩展对象的功能,它可以动态的添加对象的功能,并且可以随意的组合这些功能 缺点 正因为可以随意组合,所以就可能出现一些不合理的逻辑 public class Test { public static void main(String[] args) throws Exception { Phone p = new IPhone(); p.cal

Java:装饰设计模式

装饰设计模式: 当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能, 并提供加强功能,那么自定义的该类就称为装饰类. 装饰类通常通过构造方法接收被装饰的对象,并基于被装饰的对象的功能,提供更强的 功能. //例子1: class Person { public void chifan() { System.out.println("吃饭"); } } class SuperPerson { private Person p; public SuperPerso

java装饰设计模式的由来

装饰设计模式:基于已经存在的功能,提供增强的功能 装饰设计模式的由来: Reader   ----TextReader  ----MediaReader 要为子类提供缓冲读的功能 Reader   ----TextReader        ----BufferedTextReader   ----MediaReader       -----BufferedMediaReader Reader   ----TextReader        ----BufferedTextReader   -

java中的装饰设计模式,浅谈与继承之间的区别

最初接触装饰设计模式,一直搞不懂这么做的意义是什么,看了网上很多的资料,对于与继承的区别并没有很清楚的分析,直到看到这篇博客:http://www.cnblogs.com/rookieFly-tdiitd/p/4914593.html 这篇就很清楚的解释了装饰设计模式与继承之间的区别.下面是我自己的一些理解. 一.概念 装饰模式又称为包装模式,动态地给对象添加功能,是继承关系的一种替代方法. 二.选择 子类通过继承也能增加功能,但是关于装饰模式与继承之间如何选择,请看下面的例子. 假设:煎饼是父

java装饰设计模式

将一个对象作为参数进行传递,然后对这个对象进行包装---改变其中的方法或者添加一些新的行为---装饰设计模式---装饰者模式---Decorate Model 改变一个方法: 1. 通过继承这个类,然后重写其中的方法 2. 通过对象的传递创建装饰对象,在装饰类中重新提供对应的方法继承的缺点: 1. 单继承 2. 利用向上造型创建了一个父类对象,可以调用子类中重写方法,不能在使用父类中原来的方法 3. 如果父类对象已经存在,不能使用子类中重写之后的方法 装饰设计模式的缺点: 可能提高代码的冗余度-

Java软件设计模式------装饰设计模式

Java软件设计模式一共分为23种; 一般常用的有: 单例设计模式 装饰设计模式 工厂设计模式 装饰设计模式 定义:英文叫Decorator Pattern,又叫装饰者模式.装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. 在生活中我们用程序员和项目经理的例子来比喻,项目经理是从程序员开始的,经过不断地积累工作经验.不断的学习新的知识,才有可能升职. 在装饰设计模式中项目经理就是程序员的增强. 程序猿: 写程序 项目

装饰设计模式的简单理解

//装饰设计模式.//不修改原对象,对原有对象的功能进行增强.class Person{    void chifan()    {        System.out.println("吃饭");    }} class NewPerson{    private Person p;    NewPerson(Person p)    {        this.p = p;    }    public void newChifan()    {        System.out

二十、装饰设计模式

1. 装饰设计模式介绍 定义 动态地给一个对象添加一些额外的职责.就增加功能来说,装饰模式相比生成子类更为灵活. 2. 装饰设计模式使用场景 动态地给一个对象添加一些额外的职责. 3. 装饰设计模式UML类图 角色介绍: Component:抽象组件,充当的是被装饰的原始对象. ConcreteComponent:组件具体实现类. Decotor:抽象装饰类:职责就是为了装饰组件对象,内部有一个指向组件对象的引用. ConcreteDecoratorA:装饰者的具体实现类 Client:测试类

JAVA学习第四十九课 — IO流(三):缓冲区2 & 装饰设计模式

一.模拟BufferedReader 自定义MyBuffereaReader 对于缓冲区而言,里面其实就是封装一个数组,对外提供方法对数组的操作,这些方法最终操作的都是数组的角标 原理:从源中取出数据存入缓冲区,再从缓冲区不断的取出数据,取完后,继续从源中继续取数据,进缓冲区,直至源中的数据取完,用-1做为结束标记 import java.io.*; class MyBufferedReader { private FileReader fr; //定义数组作为缓冲区 private char[