第十六条:复合优先于继承
来源:互联网 发布:微博刷转发软件 编辑:程序博客网 时间:2024/04/30 13:57
一、什么是复合
复合也可为称为装饰者模式,那么如何使用装饰者模式呢。
首先:创建被装饰接口
其次:创建被装饰类
然后:创建装饰类
那么我们就以装饰水果篮子为例。
装饰类就是:Apple、Orange等水果 被装饰类就是:Basket
首先创建被装饰接口(Basket):
<span style="font-size:18px;">public interface Basket {//该方法展示篮子里面有什么void show();}</span>其次:创建被装饰类(直接继承接口,重写方法)
<span style="font-size:18px;">public class EmptyBasket implements Basket {@Overridepublic void show() {System.out.println("I am a basket");}}</span>然后:创建装饰类以Apple为例
public class AppleBasket implements Basket {//接收上一个装饰类private Basket basket;public AppleBasket(Basket basket) {// TODO Auto-generated constructor stubthis.basket = basket;}@Overridepublic void show() {// TODO Auto-generated method stub//调用上一个装饰类的方法basket.show();//本身的装饰System.out.println("I am apple");}}使用:
Basket basket = new AppleBasket(new OrangeBasket(new EmptyBasket()));basket.show()
继承打破了封装性:因为如果子类继承超类,如果超类的方法有所改变,那么子类就可能会遭到破坏。
举例:
0 0
- 第十六条:复合优先于继承
- 第16条:复合优先于继承
- 第16条:复合优先于继承
- 第16条:复合优先于继承
- 复合优先于继承
- 复合优先于继承
- 复合优先于继承。
- Effective Java 第16条 : 复合优先于继承
- Effective Java学习--第16条:复合优先于继承
- Java程序设计之-复合优先于继承
- EffectiveJava(16)复合优先于继承
- (16):复合优先于继承
- Effective Java读书笔记-复合优先于继承
- 《Effective java》读书记录-第16条-复合优先于继承
- Java学习笔记13:复合优先于继承
- Effective Java学习笔记:复合优先于继承
- effective java(16) 之复合优先于继承
- 复合优先于继承(重写equals方法引出的建议)
- RedHat6.3(linux)编译Qt4.8.6中文不显示的解决方法
- struts2异常处理,global-results定义全局结果处理
- imag.js|教你如何智做原生APP
- Java中数组的扩容
- C++ “error LNK1169: 找到一个或多个多重定义的符号” 解决方法
- 第十六条:复合优先于继承
- 美丽的图片
- NDS(导航数据标准)简介
- 摇杆代码(委托+事件)
- Python中__init__方法注意点
- LNMP安装了哪些软件?安装目录在哪?
- Openwrt使用mtd和sysupgrade刷机、备份恢复系统配置
- Java线程池使用说明
- 基线化是什么意思?