当前位置: 首页 > news >正文

中国建设银行网站的主要功能大连网络推广营销

中国建设银行网站的主要功能,大连网络推广营销,网站备案密码收不到,哪些网站是单页面Go和Java实现适配器模式 我们通过下面的实例来演示适配器模式的使用#xff0c;其中#xff0c;音频播放器设备只能播放 mp3 文件#xff0c;通过使用一个更高级 的音频播放器来播放 vlc 和 mp4 文件。 1、适配器模式 适配器模式是作为两个不兼容的接口之间的桥梁。这种…Go和Java实现适配器模式 我们通过下面的实例来演示适配器模式的使用其中音频播放器设备只能播放 mp3 文件通过使用一个更高级 的音频播放器来播放 vlc 和 mp4 文件。 1、适配器模式 适配器模式是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式它结合了两个独立接口的 功能。 这种模式涉及到一个单一的类该类负责加入独立的或不兼容的接口功能。举个真实的例子读卡器是作为内存卡 和笔记本之间的适配器。您将内存卡插入读卡器再将读卡器插入笔记本这样就可以通过笔记本来读取内存卡。 意图将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作 的那些类可以一起工作。 主要解决主要解决在软件系统中常常要将一些现存的对象放到新的环境中而新环境要求的接口是现对 象不能满足的。 何时使用1、系统需要使用现有的类而此类的接口不符合系统的需要。 2、想要建立一个可以重复使用的 类用于与一些彼此之间没有太大关联的一些类包括一些可能在将来引进的类一起工作这些源类不一定有 一致的接口。 3、通过接口转换将一个类插入另一个类系中。比如老虎和飞禽现在多了一个飞虎在不 增加实体的需求下增加一个适配器在里面包容一个虎对象实现飞的接口。 如何解决继承或依赖推荐。 关键代码适配器继承或依赖已有的对象实现想要的目标接口。 应用实例1、美国电器 110V中国 220V就要有一个适配器将 110V 转化为 220V。 2、JAVA JDK 1.1 提供 了 Enumeration 接口而在 1.2 中提供了 Iterator 接口想要使用 1.2 的 JDK则要将以前系统的 Enumeration 接口转化为 Iterator 接口这时就需要适配器模式。 3、在 LINUX 上运行 WINDOWS 程序。 4、JAVA 中的 jdbc。 优点1、可以让任何两个没有关联的类一起运行。 2、提高了类的复用。 3、增加了类的透明度。 4、灵活性 好。 缺点1、过多地使用适配器会让系统非常零乱不易整体进行把握。比如明明看到调用的是 A 接口其 实内部被适配成了 B 接口的实现一个系统如果太多出现这种情况无异于一场灾难。因此如果不是很有必 要可以不使用适配器而是直接对系统进行重构。 2.由于 JAVA 至多继承一个类所以至多只能适配一个适 配者类而且目标类必须是抽象类。 使用场景有动机地修改一个正常运行的系统的接口这时应该考虑使用适配器模式。 注意事项适配器不是在详细设计时添加的而是解决正在服役的项目的问题。 适用性 你想使用一个已经存在的类而它的接口不符合你的需求。 你想创建一个可以复用的类该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协 同工作。 (仅适用于对象Adapter)你想使用一些已经存在的子类但是不可能对每一个都进行子类化以匹配它们的接 口对象适配器可以适配它的父类接口。 2、Go实现适配器模式 package adapter// adapter type MediaPlayerAdapter interface {Play(string) }package adapterimport fmt// mp3 type Mp3Player struct { }func (mp3Player *Mp3Player) PlayMp3(fileName string) {fmt.Println(Playing Mp3 File: , fileName) }package adapter// mp3 adapter type Mp3PlayerAdapter struct {Mp3Player }func (mp3PlayerAdapter *Mp3PlayerAdapter) Play(fileName string) {mp3PlayerAdapter.Mp3Player.PlayMp3(fileName) }package adapterimport fmt// mp4 type Mp4Player struct { }func (mp4Player *Mp4Player) PlayMp4(fileName string) {fmt.Println(Playing Mp4 File: , fileName) }package adapter// mp4 adapter type Mp4PlayerAdapter struct {Mp4Player }func (mp4PlayerAdapter *Mp4PlayerAdapter) Play(fileName string) {mp4PlayerAdapter.Mp4Player.PlayMp4(fileName) }package adapterimport fmt// vlc type VlcPlayer struct { }func (vlcPlayer *VlcPlayer) PlayVlc(fileName string) {fmt.Println(Playing Vlc File: , fileName) }package adapter// vlc adapter type VlcPlayerAdapter struct {VlcPlayer }func (vlcPlayerAdapter *VlcPlayerAdapter) Play(fileName string) {vlcPlayerAdapter.VlcPlayer.PlayVlc(fileName) }package constantconst (Mp3 mp3Mp4 mp4Vlc vlc )package adapterimport (proj/constant )// adapter factory type PlayerFactory struct { }func (playerFactory *PlayerFactory) CreatePlayerAdapter(playerType string) MediaPlayerAdapter {switch playerType {case constant.Mp3:return Mp3PlayerAdapter{Mp3Player: Mp3Player{}}case constant.Mp4:return Mp4PlayerAdapter{Mp4Player: Mp4Player{}}case constant.Vlc:return VlcPlayerAdapter{VlcPlayer: VlcPlayer{}}}return nil }package mainimport (. proj/adapterproj/constant )func main() {// 工厂类playerFactory : PlayerFactory{}// mp3mp3PlayerAdapter : playerFactory.CreatePlayerAdapter(constant.Mp3)// Playing Mp3 File: qs.mp3mp3PlayerAdapter.Play(qs.mp3)// mp4mp4PlayerAdapter : playerFactory.CreatePlayerAdapter(constant.Mp4)// Playing Mp4 File: qs.mp4mp4PlayerAdapter.Play(qs.mp4)// vlcvlcPlayerAdapter : playerFactory.CreatePlayerAdapter(constant.Vlc)// Playing Vlc File: qs.vlcvlcPlayerAdapter.Play(qs.vlc)}下面再实现一个例子对适配器模式进行介绍。 笔记本通过读卡器去读取 TF 卡和 SD 卡。 package adapter// SDCard type SDCard interface {ReadSD() }package adapterimport fmt// SDCardImpl type SDCardImpl struct { }func (sDCardImpl *SDCardImpl) ReadSD() {fmt.Println(sdcard read msg!) }package adapter// TFCard type TFCard interface {ReadTF() }package adapterimport fmt// TFCardImpl type TFCardImpl struct { }func (tFCardImpl *TFCardImpl) ReadTF() {fmt.Println(tfcard read msg!) }package adapter// SDAdapterTF || SDCardImpl type SDAdapterTF struct {TFCard }func (sDAdapterTF *SDAdapterTF) ReadSD() {sDAdapterTF.TFCard.ReadTF() }package adapter// Computer type Computer interface {ReadSD(SDCard) }package adapter// ComputerImpl type ComputerImpl struct { }func (computerImpl *ComputerImpl) ReadSD(sDCard SDCard) {sDCard.ReadSD() }package mainimport . proj/adapterfunc main() {computer : ComputerImpl{}// sdcard// sdcard read msg!computer.ReadSD(SDCardImpl{})sDAdapterTF : SDAdapterTF{TFCard: TFCardImpl{}}// tfcard// tfcard read msg!computer.ReadSD(sDAdapterTF) }3、Java实现适配器模式 package com.adapter;// adapter public interface MediaPlayerAdapter {void play(String fileName); }package com.adapter;// mp3 public class Mp3Player {public void playMp3(String fileName){System.out.println(Playing Mp3 File: fileName);} }package com.adapter;// mp3 adapter public class Mp3PlayerAdapter implements MediaPlayerAdapter {private Mp3Player mp3Player new Mp3Player();Overridepublic void play(String fileName) {mp3Player.playMp3(fileName);} }package com.adapter;// mp4 public class Mp4Player {public void playMp4(String fileName){System.out.println(Playing Mp4 File: fileName);} }package com.adapter;// mp4 adapter public class Mp4PlayerAdapter implements MediaPlayerAdapter{private Mp4Player mp4Player new Mp4Player();Overridepublic void play(String fileName) {mp4Player.playMp4(fileName);} }package com.adapter;// vlc public class VlcPlayer {public void PlayVlc(String fileName){System.out.println(Playing Vlc File: fileName);} }package com.adapter;// vlc adapter public class VlcPlayerAdapter implements MediaPlayerAdapter{private VlcPlayer vlcPlayer new VlcPlayer();Overridepublic void play(String fileName) {vlcPlayer.PlayVlc(fileName);} }package com.adapter;public enum PlayerType {MP3, MP4, VLC; }package com.adapter;// adapter factory public class PlayerFactory {public MediaPlayerAdapter createPlayerAdapter(PlayerType playerType){switch (playerType){case MP3:return new Mp3PlayerAdapter();case MP4:return new Mp4PlayerAdapter();case VLC:return new VlcPlayerAdapter();}return null;} }package com.adapter;public class Test {public static void main(String[] args) {MediaPlayerAdapter mediaPlayerAdapter;// 工厂类PlayerFactory playerFactory new PlayerFactory();// mp3mediaPlayerAdapter playerFactory.createPlayerAdapter(PlayerType.MP3);// Playing Mp3 File: sq.mp3mediaPlayerAdapter.play(sq.mp3);// mp4mediaPlayerAdapter playerFactory.createPlayerAdapter(PlayerType.MP4);// Playing Mp4 File: sq.mp4mediaPlayerAdapter.play(sq.mp4);// vlcmediaPlayerAdapter playerFactory.createPlayerAdapter(PlayerType.VLC);// Playing Vlc File: sq.vlcmediaPlayerAdapter.play(sq.vlc);} }下面再实现一个例子对适配器模式进行介绍。 笔记本通过读卡器去读取 TF 卡和 SD 卡。 package com.adapter;// SDCard public interface SDCard {void readSD(); }package com.adapter;// SDCardImpl public class SDCardImpl implements SDCard {Overridepublic void readSD() {System.out.println(sdcard read msg!);} }package com.adapter;// TFCard public interface TFCard {void readTF(); }package com.adapter;// TFCardImpl public class TFCardImpl implements TFCard{Overridepublic void readTF() {System.out.println(tfcard read msg!);} }package com.adapter;// SDAdapterTF || SDCardImpl public class SDAdapterTF implements SDCard{private TFCard tfCard new TFCardImpl();Overridepublic void readSD() {tfCard.readTF();} }package com.adapter;// Computer public interface Computer {void readSD(SDCard sdCard); }package com.adapter;// ComputerImpl public class ComputerImpl implements Computer{Overridepublic void readSD(SDCard sdCard) {sdCard.readSD();} }package com.adapter;public class Test {public static void main(String[] args) {Computer computer new ComputerImpl();// sdcardSDCard sdCard new SDCardImpl();// sdcard read msg!computer.readSD(sdCard);// tfcardSDAdapterTF sdAdapterTF new SDAdapterTF();// tfcard read msg!computer.readSD(sdAdapterTF);} }
http://www.dnsts.com.cn/news/132107.html

相关文章:

  • 安徽建站管理系统开发请描述网站开发的一般流程图
  • 平顶山城市住房城乡建筑网站asp网站检查
  • 英文网站建设注意什么网站建设做什么会计分录
  • WordPress P站和目网站
  • 公司做的网站列入什么科目赣州人才网官网招聘信息
  • 网站收录后然后怎么做上海网站开发外包公司
  • 做旅游网站的引言腾讯邮箱企业邮箱注册
  • 滕州市 网站建设公司网站建设产品
  • 低代码建站网页升级访问更新中
  • 昆山移动网站建设网站架构设计师月薪多少
  • 六色网站中国空间站最新消息新闻
  • 做微商去哪个网站推广社区电商平台排行榜
  • 做一个静态网站要多少钱夺宝网站建设
  • 南宁东凯做网站的公司wordpress添加悬浮按钮
  • 福建网站建建设房屋装修效果图用什么软件
  • 门户网站如何做seo如何将模板导入wordpress
  • 天台县网站建设哪家好游戏网站哪个好
  • 微网站建设哪家好网站开发qq群
  • 深圳网络开发公司有哪些做搜狗手机网站优化软
  • 帮忙做快站旅游网站辽宁建设工程信息网ca锁激活
  • 电子商务网站的设计与实现Asp网站开发入门
  • 网站的上传与发布wordpress android开源
  • 最牛视频网站建设做网站的热门行业
  • 运城手机网站制作普陀营销型网站建设
  • 网站建设和教学设计模板
  • 网站左侧导航代码手机网站字体大小规范
  • 网络营销策划书 范例seosem有什么区别
  • 黑河市网站建设公司深圳今天新闻头条
  • 网站制作用的软件有哪些做网站需要学jsp
  • linux做网站教程游戏开发公司排名