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

[置顶] 给JAVASE初学者的一个例子:J2SE版本的 商家信息记录系统

2016-08-25 16:54 393 查看
功能基本实现完成,可以编译执行,来查看效果.

 

程序基本实现了 显示代码与业务逻辑相分离,并模拟了一个数据库的实现机制.

 

package cn.iamsese.product.custom.company;

import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;
/**
* 商家信息记录系统

* cn.iamsese.product.custom.company
* Author: vb2005xu [JAVA菜鸟]
*/
public class Main {

public Main(){
this.init();
}

private SellerOPInterface sellerOP ;

private void init(){
this.sellerOP = new SellerOP();
this.initSellersData(this.sellerOP) ;

}

private void initTellLineRecordData(Seller seller){
TellLineRecordOPInterface tellLineRecordOP = this.sellerOP.getTellLineRecordOP(seller);
tellLineRecordOP.addTellLineRecord( new TellLineRecord( 1 , MessageFormat.format("{0,date,full}",new Date()) , "抬高K钱1" ,"" +
"虚太高价,故意坑人" ) ) ;
tellLineRecordOP.addTellLineRecord( new TellLineRecord( 2 , MessageFormat.format("{0,date,full}",new Date()) , "抬高K钱2" ,"" +
"虚太高价,故意坑人" ) ) ;
tellLineRecordOP.addTellLineRecord( new TellLineRecord( 3 , MessageFormat.format("{0,date,full}",new Date()) , "抬高K钱3" ,"" +
"虚太高价,故意坑人" ) ) ;
tellLineRecordOP.addTellLineRecord( new TellLineRecord( 4 , MessageFormat.format("{0,date,full}",new Date()) , "抬高K钱4" ,"" +
"虚太高价,故意坑人" ) ) ;
//System.out.println(tellLineRecordOP.findAllTellLineRecords());
}

private void initSellersData(SellerOPInterface sellerOP){
sellerOP.addSeller(new Seller(0,"商家1","鼎好111") ) ;

Seller seller1 = new Seller(1,"商家2","鼎好112") ;
sellerOP.addSeller(seller1) ;
this.initTellLineRecordData(seller1);

sellerOP.addSeller(new Seller(2,"商家3","鼎好103") ) ;
}

private void printSellersInfo(Enumeration<Seller> sellers){
//列出所有商家信息
String formatMSG = "| ID: {0} | Name: {1} | Adderss: {2} | Level: {3} |" ;
while (sellers.hasMoreElements()){
Seller seller = sellers.nextElement();
System.out.println("----------Start-------------------------------------------------------------------------");
System.out.println(MessageFormat.format(formatMSG, seller.getId(),seller.getName(),seller.getAddress(),this.sellerOP.getSellerLevel(seller)  ));

this.printTellRecords(seller);
System.out.println("----------Stop-----------------------------------------------------------------");

}
}

private void printTellRecords(Seller seller){
int recordCount = this.sellerOP.getTellLineRecordOP(seller).getRecordsCount() ;
System.out.println("记录: " + recordCount);

int i = 0 ;
String formatMSG = " ID: {0} Date: {1} Title: {2} \n 描述 {3} " ;
for(TellLineRecord record : this.sellerOP.getTellLineRecordOP(seller).findAllTellLineRecords())
{
System.out.println( (i++) + "-----");
System.out.println(MessageFormat.format(formatMSG,record.getId(),record.getDate(),record.getTitle(),record.getDescription()));
}
}

private void buildWebUI(){
this.printSellersInfo(this.sellerOP.findAllSeller());
}

public static void main(String[] args) {
Main console = new Main();
console.buildWebUI();
}
}

/**
* 商家所在的大楼
* cn.iamsese.product.custom.zgcpzcompany
* Author: vb2005xu [JAVA菜鸟]
*/
class Building {
public final static int HAI_LONG = 0 ; //海龙
public final static int DING_HAO = 0 ; //鼎好
public final static int E_WORLD = 0 ; //E世界
}

/**
* 商家
* cn.iamsese.product.custom.zgcpzcompany
* Author: vb2005xu [JAVA菜鸟]
*/
class Seller {
private int id ; //公司ID
private String name ;//公司名称
private String address ;//办公地点

public Seller(int id,String name,String address)
{
this.id = id ;
this.name = name ;
this.address = address ;
}

//public ArrayList<TellLineRecord> records ;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}

}

/**
* 记录
* cn.iamsese.product.custom.zgcpzcompany
* Author: vb2005xu [JAVA菜鸟]
*/
class TellLineRecord {
private int id ; //ID
private String date ; //时间
private String title ; //标题
private String description ; //描述

public TellLineRecord(int id,String date,String title,String description){
this.id = id ;
this.date = date ;
this.title = title ;
this.description = description ;
}

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}

}

//逻辑层

/**
* 商家 操作接口
*/
interface SellerOPInterface {
public Enumeration<Seller> findAllSeller();
public boolean addSeller(Seller seller) ;
public Seller findSellerByName(String name);
public boolean removeSellerByName(String name) ;
public void removeAllSeller();

public int getSellerLevel(Seller seller) ; // 获取商家的级别
public TellLineRecordOPInterface getTellLineRecordOP(Seller seller);
}

/**
* 记录集 操作接口
* cn.iamsese.product.custom.zgcpzcompany
* Author: vb2005xu [JAVA菜鸟]
*/
interface TellLineRecordOPInterface {
public int getRecordsCount() ;
public ArrayList<TellLineRecord> findAllTellLineRecords();
public boolean addTellLineRecord(TellLineRecord tellLineRecord) ;
public TellLineRecord findTellLineRecordByID(int id);
public boolean removeTellLineRecordByID(int id);
public void removeAllTellLineRecord();
}

class SellerOP implements SellerOPInterface {

public SellerOP(){}

public Enumeration<Seller> findAllSeller() {
return DBStore.getDBStoreInstance().getSellerRecordStore().elements();
}

public Seller findSellerByName(String name) {
return DBStore.getDBStoreInstance().getSellerRecordStore().get(name);
}

public void removeAllSeller() {
DBStore.getDBStoreInstance().getSellerRecordStore().clear();
}

public boolean removeSellerByName(String name) {
boolean state = false ;
try {
DBStore.getDBStoreInstance().getSellerRecordStore().remove(name) ;
state = true ;
} catch (NullPointerException e) {
}
return state;
}
public boolean addSeller(Seller seller) {
boolean state = false ;
try {
DBStore.getDBStoreInstance().getSellerRecordStore().put(seller.getName(),seller) ;
//为seller的记录对象初始化操作
DBStore.getDBStoreInstance().getTellLineRecordStore().put(seller.getName() , new ArrayList<TellLineRecord>() ) ;
state = true ;
} catch (NullPointerException e) {
}
return state;
}
public TellLineRecordOPInterface getTellLineRecordOP(Seller seller) {
return new TellLineRecordOP(seller);
}

public int getSellerLevel(Seller seller) {
//每两次加一个级别
//System.out.println(this.getTellLineRecordOP(seller));
return this.getTellLineRecordOP(seller).getRecordsCount() / 2 + 1;
}

}

class TellLineRecordOP implements TellLineRecordOPInterface {
private Seller seller ;
public TellLineRecordOP(Seller seller) {
this.seller = seller;
}

public ArrayList<TellLineRecord> findAllTellLineRecords() {
return DBStore.getDBStoreInstance().getTellLineRecordStore().get(this.seller.getName());
}

public TellLineRecord findTellLineRecordByID(int id) {
return DBStore.getDBStoreInstance().getTellLineRecordStore().get(this.seller.getName()).get(id);
}

public void removeAllTellLineRecord() {
DBStore.getDBStoreInstance().getTellLineRecordStore().get(this.seller.getName()).clear();
}

public boolean removeTellLineRecordByID(int id) {
boolean state = false ;
try {
DBStore.getDBStoreInstance().getTellLineRecordStore().get(this.seller.getName()).remove(id) ;
state = true ;
} catch (NullPointerException e) {
}
return state;
}

public boolean addTellLineRecord(TellLineRecord tellLineRecord) {
boolean state = false ;
try {
//首先取得TellLineRecordStore,并判断其中是否存在this.seller.getName()
if (DBStore.getDBStoreInstance().getTellLineRecordStore().containsKey(this.seller.getName())){
DBStore.getDBStoreInstance().getTellLineRecordStore().get(this.seller.getName()).add(tellLineRecord) ;
state = true ;
}

//			else { // -- 这个在调用addSeller时已经初始化了
//				DBStore.getDBStoreInstance().getTellLineRecordStore().put(this.seller.getName() , new ArrayList<TellLineRecord>() ) ;
//			}
//			state = true ;
} catch (NullPointerException e) {
//e.printStackTrace();
}
return state;
}

public int getRecordsCount() {
try {
return this.findAllTellLineRecords().size();
}catch (NullPointerException e) {
//如果this.findAllTellLineRecords()返回null的话
return 0 ;
}

}

}

//实体层,这里没有使用到数据库,所以缺少了Dao层的实现

/**
* 模拟的记录存储器存储器
* cn.iamsese.product.custom.zgcpzcompany
* Author: vb2005xu [JAVA菜鸟]
*/
class DBStore {
private static DBStore instance = null ;

/**
* < sellerName,ArrayList<TellLineRecord> >
*/
private Hashtable<String, ArrayList<TellLineRecord>> tellLineRecordStore ;
/**
* <sellerName,Seller>
*/
private Hashtable<String, Seller> sellerRecordStore ;

/*
* 仅能使用单态实例对象
*/
private DBStore(){
this.setSellerRecordStore(new Hashtable<String, Seller> ());
this.setTellLineRecordStore(new Hashtable<String, ArrayList<TellLineRecord>>()) ;
}

public static DBStore getDBStoreInstance(){
if (instance == null)
instance = new DBStore();
return instance ;
}

public Hashtable<String, ArrayList<TellLineRecord>> getTellLineRecordStore() {
return tellLineRecordStore;
}

public void setTellLineRecordStore(
Hashtable<String, ArrayList<TellLineRecord>> tellLineRecordStore) {
this.tellLineRecordStore = tellLineRecordStore;
}

public Hashtable<String, Seller> getSellerRecordStore() {
return sellerRecordStore;
}

public void setSellerRecordStore(Hashtable<String, Seller> sellerRecordStore) {
this.sellerRecordStore = sellerRecordStore;
}

}

 






大小: 61.5 KB

查看图片附件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: