java的装饰设计模式】的更多相关文章

装饰设计模式: 当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能, 并提供加强功能,那么自定义的该类就称为装饰类. 装饰类通常通过构造方法接收被装饰的对象,并基于被装饰的对象的功能,提供更强的 功能. //例子1: class Person { public void chifan() { System.out.println("吃饭"); } } class SuperPerson { private Person p; public SuperPerso…
类似python中的装饰器. 示例: public class Test5 { public static void main(String[] args) { Worker w = new Worker(new Students()); w.code(); } } interface Coder { public abstract void code(); } class Students implements Coder { @Override public void code() { Sy…
------- android培训.java培训.期待与您交流! ---------- 装饰设计模式: 当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能. 那么自定义的该类称为装饰类. 装饰类通常会通过构造方法接收被装饰的对象. 并基于被装饰的对象的功能,提供更强的功能. 装饰模式比继承要灵活.避免了继承体系臃肿. 而且降低了类于类之间的关系. 装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强功能. 所以装饰类和被装饰类通常是都属于…
装饰设计模式就是对已有的对象的功能进行增强 当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能.那么自定义的该类称为装饰类. 装饰类通常会通过构造方法接收被装饰的对象.并基于被装饰的对象的功能,提供更强的功能. 例如:你有个对象有个功能 是在N年前建立的,如今你觉得功能不够用了 写个类把对象传进来就可以解决问题了 如果这个功能写错了 我就把自己写的功能去掉又不影响以前的功能灵活性相当强的. 装饰模式比继承要灵活.避免了继承体系臃肿.而且降低了类于类之间的…
IO流 IO流用来处理设备之间的数据传输 java对数据的操作是过流的方式 流按操作数据分为两种:字节流与字符流 流按流向分为:输入流,输出流. IO流常用基类 字节流的抽象基类:InputStream OutputStream 字符流的抽象基类:Reader,Writer 由这四个类派生出来的子类名称都是以其父类作为子 类名的后缀. 如InputStream 的子类 FileInpuStream Reader的子类FileReader 数据的最常见的形式是:文件 字符读取缓冲区: class…
JAVA之旅(二十六)--装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片 一.装饰设计模式 其实我们自定义readLine就是一种装饰模式 当想要对已有的对象进行功能增强时,可以定义一个类,将已有对象传入,并且提供加强功能,那么自定义的该类就称为装饰类 package com.lgl.hellojava; public class HelloJJAVA { public static void main(S…
本文粗略的介绍下JavaIO的整体框架,重在解释BufferReader/BufferWriter的演变过程和原理(对应的设计模式) 一.JavaIO的简介 流按操作数据分为两种:字节流与字符流. 流按流向分为:输入流(读),输出流(写). 字符流由来就是:早期的字节流+编码表,为了更便于操作文字数据. 记住:只要是操作字符数据,应该优先使用字符流. 字节流的抽象基类:InputStream ,OutputStream. 字符流的抽象基类:Reader , Writer. 二.JavaIO中的流…
在java IO 流中我们经常看到这样的写法: ObjectOutputStream oos = new ObjectOutputStream( new BufferedOutputStream(new FileOutputStream("obj.ser"))); 这其实就是IO流使用装饰设计模式,装饰设计模式通常包含: 1.抽象的组件(抽象类或接口) 2.具体的组件:需要装饰的对象 3.抽象的装饰:包含了对抽象组件的引用以及装饰着共同的方法 4.具体的装饰类:被装饰的对象 下面模拟咖…
装饰设计模式 装饰设计模式概述 装饰模式就是使用被装饰类的一个子类的实例,在客户端将这个子类的实例交给装饰类.是继承的替代方案 优点 使用装饰模式,可以提供比继承更灵活的扩展对象的功能,它可以动态的添加对象的功能,并且可以随意的组合这些功能 缺点 正因为可以随意组合,所以就可能出现一些不合理的逻辑 装饰设计模式,就是继承的替代方案. 例子: 手机的例子:(装饰设计模式) 现在用个电脑类来写代码例子: 1.现在有个电脑的规则接口: /** * 这是电脑类的规则接口 * * @author LZL…
最初接触装饰设计模式,一直搞不懂这么做的意义是什么,看了网上很多的资料,对于与继承的区别并没有很清楚的分析,直到看到这篇博客:http://www.cnblogs.com/rookieFly-tdiitd/p/4914593.html 这篇就很清楚的解释了装饰设计模式与继承之间的区别.下面是我自己的一些理解. 一.概念 装饰模式又称为包装模式,动态地给对象添加功能,是继承关系的一种替代方法. 二.选择 子类通过继承也能增加功能,但是关于装饰模式与继承之间如何选择,请看下面的例子. 假设:煎饼是父…
1.装饰设计模式 顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下: 2.看这个图可能不容易理解,举两个例子. 1)首先是IO流中的知识. 相信大家都知道缓冲流.BufferedInputStream,BufferedOutputStream 等等 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(new Fil…
对已有功能进行增强 示例 已有的类    调用 增强后的类 调用  思考? 为什么要这么做呢? SuperPerson 继承 Person 可以达到同样的效果. 继承的写法,其中MyBuffer...Reader写了3次,如果有更多的话,还会写更多的类.有些臃肿 第一次优化:将MyBuffer抽离出来 再看,利用多态实现多种方法 最终的结构.MyBufferReader 成为了增强的装饰类.就是装饰设计模式 对比原来的结构,是不是舒服很多 vs  看完这个再回过头看开始时候的示例.是不是就能够理…
将一个对象作为参数进行传递,然后对这个对象进行包装---改变其中的方法或者添加一些新的行为---装饰设计模式---装饰者模式---Decorate Model 改变一个方法: 1. 通过继承这个类,然后重写其中的方法 2. 通过对象的传递创建装饰对象,在装饰类中重新提供对应的方法继承的缺点: 1. 单继承 2. 利用向上造型创建了一个父类对象,可以调用子类中重写方法,不能在使用父类中原来的方法 3. 如果父类对象已经存在,不能使用子类中重写之后的方法 装饰设计模式的缺点: 可能提高代码的冗余度-…
在之前的java 23 中,了解过设计模式的单例模式和工厂模式.在这里,介绍下设计模式 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则 单一职责原则 开闭原则 里氏替换原则 依赖注入原则 接口分离原则 迪米特原则 单一职责原则 其实就是开发人员经常说的"高内聚,低耦合" 也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 开闭原则 核…
IO装饰设计模式:(IO中使用了装饰设计模式) 节点流可以直接从源读取数据,处理流就是对节点流的包装,这就是装饰,装饰就是对原有的流的性能的提升.比如买的车,马力不够,就进行装饰,使其马力增大. 装饰模式: 扩音器对声音进行了扩大. 类与类之间的关系(6种): .依赖:一个对象是形参或者局部变量,只有调用方法的时候才会依赖这个类. .关联:一个对象是属性.关联分为: 聚合:是属性 整体与部分关系, 不一致的生命周期, 人与手 组合:是属性 整体与部分关系, 一致的生命周期, 人与大脑 .继承:父…
一:摘要 通过对java的IO类中我们可以得出:IO源码中使用装饰设计模式频率非常高, 对装饰设计模式而言,他能够避免继承体系的臃肿,同时也可以动态的给一个对象添加一些额外的功能,如果要扩展一个功能,装饰设计模式提供了比继承更具有弹性的设计方案,当然还有动态代理模式,三者都是对现有有的功能进行改造. 二.案例: 1.针对Reader这个类而言,我们可以看到使用的装饰设计模式之一是: BufferedReader br=new BufferedReader(new FileReader("c:\\…
Java江湖之设计模式 ps:最近在学习设计模式,感觉这个是个装逼神器呀,就跟武功一样.     某日,senior同学看见rookie同学在练功.     问,"你练得什么武功?"     答:"不知道了吧,我师从江湖第一大门派:java对象派,我练习的功法名叫搬砖功.     问:"何为搬砖功?"     答:"搬砖功简单说来就是代码堆砌,平时如果师傅交代如果有啥子功能需要完成的,我就采用搬砖功,简单的很,直接吧所有需要做的事情写在一个类里面…
package IO; /* * 装饰设计模式 模拟咖啡 * 1.抽象组件:需要装饰的抽象对象(接口或抽象父类) * 2.具体组件:需要装饰的对象 * 3.抽像装饰类:包含了对抽象组件的引用以及装饰着共有的方法 * 4,具体装饰类:被装饰的对象 * */ public class Test2 { public static void main(String[] args) { Drink coffee=new Coffee(); System.out.println(coffee.info()+…
Java中单态设计模式 2011-09-23 16:38:46|  分类: Java |  标签:technology!  |举报|字号 订阅     此博文是转自新浪博客中一名叫做"俊俊的BLOG“用户的一篇博文.感觉此博文确实很不错,所以在此拿出来分享一下!(笔者只是对其所举的代码略做了一些修改) 一概念: 设计模式:设计模式是指经过大量的实践总结和理论化之后的优选的代码结构.编程风格.以及解决问题的思路. 单态设计模式:采取一定的方法保证在整个软件系统中,对某个类只能产生一个对象实例,并且…
知识点:什么是装饰模式: http://wenku.baidu.com/view/ad4eac9f51e79b896802263b.html(原理讲的很清楚) http://wenku.baidu.com/view/a44f2ef2b8f67c1cfad6b8bb.html (例子很不错) java io 流 设计模式:装饰模式和适配器模式 http://blog.csdn.net/wong_judy/article/details/5262104 (主要讲解装饰模式) http://wenku…
版权声明:原创作品,谢绝转载!否则将追究法律责任. 代理: 另一个装饰设计模式,代理,是一个代表或者协调另一个对象的行为机制.例如当你用一个tableView,你必须实现他里面的一个tableView:numberOfRowsInSection:.方法.你不希望tableView知道他有多少行在每个section,因此这个计算每个区有几行的任务交给了UITableView的代理.他允许tableView类是独立的数据显示. 当你创建一个UITableView的时候下面发生的: 这个tableVi…
装饰设计模式 装饰设计模式动态的添加行为和责任向一个对象而不修改他的任何代码.他是你子类化修改类的行为用通过另一个对象的包装的代替方法. 在Objective-c里面有很多这种设计模式的实现,像category和delegation. 类别 类别是一个极其强大的机制允许你向已经知道的类添加方法不用继承.新方法在编译时间被添加可以像正常方法一样被执行在这个扩展类里面.这个和类的修饰定义有稍微的不同.因为类别不能添加实例 变量. 注意:除了扩展自己的类,你还可以向任何cocoa自己的类添加方法. 怎…
原址:http://wangle.iteye.com/blog/196972 工厂模式, 工厂方法模式,单例模式, 外观(Facade)模式, 观察者(Observer)模式,桥接(Bridge)模式都是比较常用的,不同的项目有不同的设计方向,可以参考的设计模式也不尽相同,没有定数,只是上面这几个模式用的比较多一些. 其他的模式我找了一下,都列出来了. ====================== Java常用的设计模式 创建型模式 1.FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基…
装饰设计模式:当想要对已有的对象进行功能增强时,可以自定义类将已有的对象传入,并提供加强功能,自定义的该类称为装饰类 典型的: Reader--FileReader --BufferedReader class Decorator{ public void eat(){ System.out.println("吃饭"); } } public class DecoratorDemo extends Decorator{ public DecoratorDemo() { } public…
JDK/Java里的设计模式…
文章目录 Creational(创建模式) 1. Abstract factory: 2. Builder: 3. Factory: 4. Prototype: 5. Singleton: 6. Chain of responsibility: 7. Command: 8. Interpreter: 9. Iterator: 10. Mediator: 11. Memento: 12. Null Object: 13. Observer: 14. State: 15. Strategy: 16.…
1. 单例设计模式的定义 单例设计模式确保类只有一个实例对象,类本身负责创建自己的对象并向整个系统提供这个实例.在访问这个对象的时候,访问者可以直接获取到这个唯一对象而不必由访问者进行实例化. 单例设计模式保证了全局对象的唯一性,在许多场景中都有应用.例如Windows中多个进程或线程同时操作一个文件的时候,所有的进程或线程对于同一个文件的处理必须通过唯一的实例来进行. 2. java单例设计模式的几种实现方式 单例设计的最大特点是类的构造函数是私有的,确保了只能由类本身创建对象,而访问者无法进…
2019独角兽企业重金招聘Python工程师标准>>> 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 装饰设计模式: 写信的例题:在原来的基础上添加新的佐料形成新的产品 如下面图片,都是佐料,可以随意搭配 然后就可以随意搭配 如何加密解密: 可以使用JiaMiOutputStream去写东西,如何在输出字节之前给加密呢,使用FileOutputStream然后在输出去,到时候读上来就用FileI…
前言 在上一篇中我们学习了结构型模式的适配器模式和桥接模式.本篇则来学习下结构型模式的外观模式和装饰器模式. 外观模式 简介 外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口.这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性. 简单的来说就是对外提供一个简单接口,隐藏实现的逻辑.比如常用电脑的电源键,我们只需按电源键,就可以让它启动或者关闭,无需知道它是怎么启动的(启动CPU.启动内存.启动硬盘),怎么关闭的(关闭硬盘.关闭内存.关闭CPU)…
package com.gylhaut.base; /** * 装饰器 * 类与类之间的关系 * 1.依赖:形参(局部变量) * 2.关联:属性 * 聚合 属性 整体和部分 不一致的生命周期 人和手 * 组合 属性 整体和部分 一致的生命周期 人和大脑 * 3.继承:父子类关系 * 4.实现:接口与实现的关系 */ public class Decorator { private Voice voice; public void say(){ System.out.println("val=&q…