电影网站建设方案ppt模板下载,如何自己创建购物网站,建材采购网,网站建设创业基础ppt模板文章目录 一、结构型设计模式二、适配器模式 一、结构型设计模式
这篇文章我们来讲解下结构型设计模式#xff0c;结构型设计模式#xff0c;主要处理类或对象的组合关系#xff0c;为如何设计类以形成更大的结构提供指南。
结构型设计模式包括#xff1a;适配器模式结构型设计模式主要处理类或对象的组合关系为如何设计类以形成更大的结构提供指南。
结构型设计模式包括适配器模式Adapter Pattern、桥接模式Bridge Pattern、组合模式Composite Pattern、装饰器模式Decorator Pattern、外观模式Facade Pattern、享元模式Flyweight Pattern、代理模式Proxy Pattern
在本文中主要介绍 适配器、桥接、组合、享元四种设计模式下篇文章为讲解 外观、代理、 装饰器 。
二、适配器模式
适配器模式Adapter Pattern是作为两个不兼容的接口之间的桥梁。它结合了两个独立接口的功能。 优点
可以让任何两个没有关联的类一起运行。提高了类的复用。增加了类的透明度。灵活性好。
这种模式涉及到一个单一的类该类负责加入独立的或不兼容的接口功能。举个真实的例子在视频播放器中假设视频播放器只能播放MP4格式的视频那现在又有个VLC格式的视频就不能播放了那要如何解决这个问题如果我们做个转换器将VLC格式的视频转换为MP4格式的视频不就可以播放了吗那这个转换器我们就可以采用适配器设计模式来设计。
下面使用程序演示下上面的例子
定义视频接口
public interface VideoInterFace {String getVideoPath();
}定时Mp4格式视频实例
public class Mp4Video implements VideoInterFace {Overridepublic String getVideoPath() {return Mp4视频的路径;}
}定义VLC格式视频实例
public class VlcVideo implements VideoInterFace{Overridepublic String getVideoPath() {return Vlc视频的路径;}
}定义播放器只接口Mp4格式的视频
public class Player {private Mp4Video video;public Player(Mp4Video video) {this.video video;}public void play() {System.out.println(StringFormatter.concat(播放视频视频地址, video.getVideoPath()).getValue());}
}需要播放VLC格式的视频定义Mp4的适配器并接收VLC格式视频进行转码。
public class Mp4Adapter extends Mp4Video {private VlcVideo vlcVideo;public Mp4Adapter(VlcVideo vlcVideo) {this.vlcVideo vlcVideo;}Overridepublic String getVideoPath() {System.out.println(StringFormatter.concat(开始格式转换vlc地址, vlcVideo.getVideoPath()).getValue());return 转换后的Mp4路径;}
}测试
public class demo {public static void main(String[] args) {Player player new Player(new Mp4Video());player.play();VlcVideo vlcVideo new VlcVideo();Player player1 new Player(new Mp4Adapter(vlcVideo));player1.play();}
}从上面的例子可以看出需要播放VLC格式就需要写一个目标适配器这里是Mp4适配器并继承Mp4使之有Mp4的特性并在内部做相应的转换即可提高了系统的可扩展性。