您的位置:首页 > 编程语言 > Java开发

Java代码可拓展性简单示例

2017-01-02 01:07 330 查看

一个简单的媒体库,可以往里添加CD,DVD,Game等对象



Database类

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