什么是Java设计模式?设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结 。使用设计模式是为java设计模式代码了可重用代码、让代码更容易被他人理解、保证代码可靠性 。毫无疑问java设计模式代码,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样 。
java设计模式是当java设计模式代码你在实际的系统当中遇到重构或者扩展的时候采取的一种对现有系统影响最小的一种措施 。当然并不是一定要学这个东西,就像一个没上过学的人和上过学的人,在个人修养上面存在一定的差异,但是他们都知道如何生活 , 各自都有各自的生活方式,并没有因为没上过学而不能生活了 。学习设计模式会扩展你的逻辑思维 , 增加你面向抽象编程的思想,从而会在软件设计上提升到一个架构设计的层次 , 都学点不会错的!
推荐书籍java设计模式代码:《软件秘笈:设计模式那点事》 。
百度里面搜“设计模式”,第一条中设计模式百度百科中就有首推该图书,浏览量在20几万以上的 , 不会错的 。里面讲解的23中设计模式例子很生动 , 容易理解,还有JDK中设计模式应用情况,看了收获挺大的!好东西大家一起分享!
祝你早日学会设计模式!
Java设计模式之Decorator模式 JDK为程序员提供java设计模式代码了大量java设计模式代码的类库 而为了保持类库java设计模式代码的可重用性 可扩展性和灵活性 其中使用到了大量的设计模式 本文将介绍JDK的I/O包中使用到的Decorator模式 并运用此模式 实现一个新的输出流类
Decorator模式简介
Decorator模式又名包装器(Wrapper) 它的主要用途在于给一个对象动态的添加一些额外的职责 与生成子类相比 它更具有灵活性
有时候 我们需要为一个对象而不是整个类添加一些新的功能 比如 给一个文本区添加一个滚动条的功能 我们可以使用继承机制来实现这一功能 但是这种方法不够灵活 我们无法控制文本区加滚动条的方式和时机 而且当文本区需要添加更多的功能时 比如边框等 需要创建新的类 而当需要组合使用这些功能时无疑将会引起类的爆炸
我们可以使用一种更为灵活的方法 就是把文本区嵌入到滚动条中 而这个滚动条的类就相当于对文本区的一个装饰 这个装饰(滚动条)必须与被装饰的组件(文本区)继承自同一个接口 这样 用户就不必关心装饰的实现 因为这对他们来说是透明的 装饰会将用户的请求转发给相应的组件(即调用相关的方法) 并可能在转发的前后做一些额外的动作(如添加滚动条) 通过这种方法 我们可以根据组合对文本区嵌套不同的装饰 从而添加任意多的功能 这种动态的对对象添加功能的方法不会引起类的爆炸 也具有了更多的灵活性
以上的方法就是Decorator模式 它通过给对象添加装饰来动态的添加新的功能 如下是Decorator模式的UML图
Component为组件和装饰的公共父类 它定义了子类必须实现的方法
ConcreteComponent是一个具体的组件类 可以通过给它添加装饰来增加新的功能
Decorator是所有装饰的公共父类 它定义了所有装饰必须实现的方法 同时 它还保存了一个对于Component的引用 以便将用户的请求转发给Component 并可能在转发请求前后执行一些附加的动作
ConcreteDecoratorA和ConcreteDecoratorB是具体的装饰 可以使用它们来装饰具体的Component
Java IO包中的Decorator模式
JDK提供的java io包中使用了Decorator模式来实现对各种输入输出流的封装 以下将以java io OutputStream及其子类为例 讨论一下Decorator模式在IO中的使用
推荐阅读
- 怎么调整路由器上网信号,怎么调整路由器信号强度
- ie8支持css3的所有属性,ie8支持html
- 平板电脑充电异常怎么解决,平板电脑充电不正常
- sqlserver缩写,sql 缩写
- c语言函数间传递数据h c语言 传递函数
- 娱乐视频适合用什么bgm,娱乐视频素材在什么网站下载
- chromejquery事件,chrome事件监听
- php采集网页商品数据库 php数据采集方法
- 如何在ERP系统导供应商代码,erp 供应商