Java代码可拓展性简单示例
2017-01-02 01:07
330 查看
一个简单的媒体库,可以往里添加CD,DVD,Game等对象
Item类
CD类
DVD类
结构
类名 | 变量和方法 |
---|---|
CD类 | 变量:title, director, playingTime, comment,artist, numofTracks ,gotIt |
方法:add(添加数据),list(输出数据) | |
DVD类 | 变量:title, director, playingTime, comment,director,gotIt; |
方法:add(添加数据),list(输出数据) | |
抽象出 Item 类 | 变量:title, gotIt, playingTime, comment |
方法:add(添加数据),list(输出数据) |
Database类
package dome; import java.util.ArrayList; public class Database { private ArrayList<Item> listItem = new ArrayList<Item>(); public void add(Item item) { listItem.add(item); } public void list() { for(Item item : listItem) { item.print(); } } public static void main(String[] args) { Database db = new Database(); db.add(new CD("陈奕迅", "ac", 4, 23, "...")); db.add(new CD("许巍", "ac", 3, 23, "...")); db.add(new DVD("肖申克的救赎","bbdasfb",3,"...")); db.add(new DVD("辛德勒名单","bbdfb",4,",,,,")); db.add(new DVD("哈哈哈","b大b",5,",,,,")); db.list(); } }
Item类
package dome; public class Item { protected String title; protected int playingTime; private boolean gotIt = false; protected String comment; public Item(String title, int playingTime, boolean gotIt, String comment) { super(); this.playingTime = playingTime; this.gotIt = gotIt; this.comment = comment; } public Item(){ } public void setTitle(String title) { this.title = title; } public static void main(String[] args) { // TODO Auto-generated method stub } public void print() { } }
CD类
package dome; public class CD extends Item{ private String artist; private int numofTracks; public CD(String title, String artist, int numofTracks, int playingTime, String comment) { super(); this.title = title; this.artist = artist; this.numofTracks = numofTracks; this.playingTime = playingTime; } public static void main(String[] args) { // TODO Auto-generated method stub } public void print() { System.out.println("CD: "+title + artist+ numofTracks+playingTime+"...."); } }
DVD类
package dome; public class DVD extends Item{ private String director; public static void main(String[] args) { // TODO Auto-generated method stub } public DVD(String title, String director, int playingTime, String comment) { super(); this.title = title; this.director = director; this.playingTime = playingTime; this.comment = comment; } public void print() { // TODO Auto-generated method stub super.print(); System.out.println("DVD: "+title+director+playingTime+",,,"); } }
把CD和DVD中,共同的属性或者方法,拿出来封装成一个类,如果需要使用这些方法或者属性,直接继承即可。特别是如果再新加入一个媒体,比如说Game。如果不把这些共同方法和属性抽象出来,每次新加入一种媒体,都需要重新定义这个媒体的属性和方法,多数情况下,这些属性或者方法会有重复的。通过抽象出一个基类,代码的可扩展性强,便于维护。
相关文章推荐
- 【代码示例】 一个简单的Java死锁
- 【JAVA】List和map的简单示例代码
- java学习之利用TCP实现的简单聊天示例代码
- Java实现最简单的拖拽代码示例
- JAVA Map简单代码示例
- Java实现判断浏览器版本与类型简单代码示例
- Java实现拖拽文件上传dropzone.js的简单使用示例代码
- Java连接Oracle简单代码示例
- JAVA HashSet简单代码示例
- Java实现简单的RPC框架的示例代码
- java实现一个简单的网络爬虫代码示例
- JAVA 实现自己的数据库驱动简单代码示例
- 用java的spring实现一个简单的IOC容器示例代码
- java 简单的jdbc连接数据库代码示例
- java提高篇(一)拓展篇 java知识汇总---IO流的使用规律总结(含代码示例)浅显易懂
- Java求素数和最大公约数的简单代码示例
- java简单实现八叉树图像处理代码示例
- java连接ACCESS数据库的简单示例
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)