IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 设计模式之装饰模式 -> 正文阅读

[Java知识库]设计模式之装饰模式

简介

首先,在写装饰模式的代码之前呢,我想要捋一下,比如说你想装饰一辆车,那么首先,你得抽象一下车这个总体的接口来制造车对应的类型,然后通过一个实现类来创建一个品牌,除此之外,因为车可能有很多都是相同的,所以我们可以创建一个统一的类,然后根据不同的车子,来设置对应的show方法,然后再继承这个类,重写里面的方法之后,再进行调用

package jianzaozhe;

public interface Car {
    //车的装配

   public void show();
}

package jianzaozhe;

public class Benz implements  Car{
    @Override
    public void show() {
        System.out.println("奔驰的默认颜色是黑色");
    }
}
package jianzaozhe;

public class CarDecorator implements Car{
    private Car car=null;
    public CarDecorator(Car car){
        this.car=car;
    }
    public void show(){
        this.car.show();//这个是想说明的是,根据不同的车子,现在其牌子内设置对应的装饰
    }

}

package jianzaozhe;

public class ConcreteCarDecorator extends  CarDecorator{
    public ConcreteCarDecorator(Car car){
        //先继承父类对应的方法
        super(car);
    }
    //给车进行彩绘
    private void print(){
        System.out.println("颜色是紫霞");
    }
    //给车安装GPS设备
    private void setGps(){
        System.out.println("安装定位GpS系统");
    }
    //重写show方法
    public void show(){
        super.show();
        this.print();
        this.setGps();
    }
}
package jianzaozhe;

public class CilentDemo {
    public static void main(String[] args) {
        Car car=new Benz();
        //对奔驰车进行装饰
        CarDecorator cd=new ConcreteCarDecorator(car);
        cd.show();
    }
}

结果:
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 10:40:45  更:2021-09-07 10:42:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:08:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码