JAVA策略模式例子
来源:互联网 发布:知乎 朱炫 西游记 编辑:程序博客网 时间:2024/06/05 14:41
/** * * ClassName: 华语经典 <br/> * Function: TODO ADD FUNCTION. <br/> * Reason: TODO ADD REASON(可选). <br/> * @version */public class ChineseClassics extends NeteaseCloudMusicSongSheet {@Overridepublic String getS_code() {return "WYYHYJD_GD_7231";}@Overridepublic String getS_name() {return "华语经典 ";}@Overridepublic String getS_cdate() {return "2017-03-01";}@Overridepublic String getS_songRows() {return "16首";}@Overridepublic String getS_face() {return "images\001";}}
一个音乐播放器有很多歌单,我们点击一个歌单就会进入开始循环列表播放里面的歌曲
使用策略模式播放歌单,让用户来回切换:
以上的子类(华语经典)继承下面这个抽象父类
import java.util.List;/** * * ClassName: 网易云音乐歌单 <br/> * Function: TODO ADD FUNCTION. <br/> * Reason: TODO ADD REASON(可选). <br/> * @version */public abstract class NeteaseCloudMusicSongSheet {private String s_code;//歌单编号private String s_name;//歌单名private String s_cdate;//歌单创建时间private String s_songRows;//收录歌曲数量private String s_face;//封面public String getS_code() {return s_code;}public void setS_code(String s_code) {this.s_code = s_code;}public String getS_name() {return s_name;}public void setS_name(String s_name) {this.s_name = s_name;}public String getS_cdate() {return s_cdate;}public void setS_cdate(String s_cdate) {this.s_cdate = s_cdate;}public String getS_songRows() {return s_songRows;}public void setS_songRows(String s_songRows) {this.s_songRows = s_songRows;}public String getS_face() {return s_face;}public void setS_face(String s_face) {this.s_face = s_face;}}
再添加一个歌单
/** * * ClassName: 歌单-影视原声 <br/> * Function: TODO ADD FUNCTION. <br/> * Reason: TODO ADD REASON(可选). <br/> * @version */public class TelevisionOriginalSound extends NeteaseCloudMusicSongSheet{@Overridepublic String getS_code() {return "WYYYSYS_GD_3521";}@Overridepublic String getS_name() {return "影视原声";}@Overridepublic String getS_cdate() {return "2017-03-10";}@Overridepublic String getS_songRows() {return "21首";}@Overridepublic String getS_face() {return "images\121";}}
然后编写播放程序
/** * * ClassName: 播放服务 <br/> * Function: TODO ADD FUNCTION. <br/> * Reason: TODO ADD REASON(可选). <br/> * @version */public class PlayServer {//进入歌单选项列表private NeteaseCloudMusicSongSheet neteaseCloudMusicSongSheet; public PlayServer(NeteaseCloudMusicSongSheet _neteaseCloudMusicSongSheet) {this.neteaseCloudMusicSongSheet = _neteaseCloudMusicSongSheet;}//开始播放 public void playStart(){ System.out.println("====您已进入该歌单,开始循环播放列表下的所有歌曲===="); System.out.println("编号:" + neteaseCloudMusicSongSheet.getS_code()); System.out.println("歌单名:" + neteaseCloudMusicSongSheet.getS_name()); System.out.println("封面:" + neteaseCloudMusicSongSheet.getS_face()); System.out.println("收录歌曲数量:" + neteaseCloudMusicSongSheet.getS_songRows()); System.out.println("创建时间:" + neteaseCloudMusicSongSheet.getS_cdate()); } }
测试
import java.util.Scanner;public class MainTest {public static void main(String[] args) {Scanner sc=new Scanner(System.in);NeteaseCloudMusicSongSheet n=null;PlayServer p=null;while(true){System.err.println("\n请点击(输入歌单编号)如:【WYYYSYS_GD_3521】或【WYYHYJD_GD_7231】");String str=sc.next();switch (str) {case "WYYYSYS_GD_3521": n=new TelevisionOriginalSound();p=new PlayServer(n);break;case "WYYHYJD_GD_7231":n=new ChineseClassics(); p=new PlayServer(n);break;default:break;}p.playStart();}}}
1 0
- JAVA策略模式例子
- 策略模式的java实现例子
- 策略模式小例子
- 策略模式 ----- 排序例子
- 策略模式小例子
- 策略模式例子
- 策略模式的小例子
- 策略模式-Duck的例子
- 【设计模式】Java服务开发应用策略模式的一个例子
- java策略模式
- java中的策略模式
- Java策略模式(Strategy)
- java笔记 策略模式
- java 策略模式
- java 策略模式
- Java策略模式笔记
- Java策略模式回顾
- 策略模式----Java
- IO流-File-判断-重命名-获取根目录下容量
- 基于SSM框架的office应用思路
- awk合并文件的个人理解
- ceph部署bug
- 前端开源项目周报0307
- JAVA策略模式例子
- ThinkPHP3.2 + PHPExcel 进行execl文件导出操作
- web
- 开发国际化 NSLocalizedString用法
- 参数传递sys.argv, 文件递归搜索os.walk
- Android项目重构之路:架构篇
- Hadoop用户行为分析项目
- Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/JaxenException这个错误信息
- 实验2