`

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

阅读更多

功能基本实现完成,可以编译执行,来查看效果.

 

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

 

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
分享到:
评论

相关推荐

    javase编写的学生管理系统--适合初学者学习使用

    JavaSE编写的“学生管理系统”是一个基础级别的项目,旨在帮助初学者掌握Java编程语言的核心概念。这个系统不涉及复杂的数据库操作、服务器端技术如JSP和Servlet,因此它为新手提供了一个良好的实践平台,让他们在...

    J2SE 6.0 API

    8. **JDBC(Java Database Connectivity)**:J2SE 6.0的JDBC API提供了一组用于访问数据库的标准Java接口和类,支持多种数据库厂商,使得数据库操作更为便捷。 9. **国际化**:Java 6强化了对国际化和本地化的支持...

    超市管理系统 纯javase 对初学者很有帮助,涵盖大部分知识点

    这个名为"超市管理系统"的项目,正是一个理想的学习平台,它涵盖了JavaSE的诸多核心概念和技术,帮助初学者深入理解和实践这些知识点。 首先,基础语法是学习任何编程语言的第一步。在这个系统中,你会遇到变量声明...

    三年JavaEE开发积累的那些代码之一:JavaSE篇完整实例源码

    三年JavaEE开发积累的那些代码之一:JavaSE篇 有什么? 1)自己写的例子:或是为了项目中应用写的demo,或是为了学习某项技术写的demo。 2)网上下载的例子:或改过或没改过,或完善过或原封没动。 没什么? 1)公司...

    用javaSE做的购物系统

    总结,一个基于JavaSE的简单购物系统,虽然没有复杂的Web技术,但足以让初学者掌握基本的面向对象编程、数据结构、异常处理等概念,并了解一个完整系统的基本流程。通过这样的实践,能为学习更高级的JavaEE或Web开发...

    javase项目:学生在线考试系统

    本项目基于JavaSE技术,构建了一个控制台版本的学生在线考试系统,旨在实现便捷的考试管理和学员信息管理功能。 一、系统架构 JavaSE(Java Standard Edition)是Java平台的基础,它提供了丰富的类库和API,支持...

    JavaSE_J2SE_5.0_API_中文文档_html格式

    J2SE(Java 2 Platform, Standard Edition)是JavaSE早期的称呼,5.0是其一个重要的版本发布,它在Java发展历程中扮演了关键的角色,引入了许多新特性并优化了已有的功能。 在JavaSE 5.0(也称为Java 5.0)中,主要...

    javaSE商品管理系统

    这个商品管理系统虽然简单,但它涵盖了JavaSE开发中的多个关键知识点,对于初学者来说是一个很好的实践项目,有助于理解Java后端开发的流程和技术。同时,通过实际操作,开发者可以更好地掌握数据库管理和GUI编程的...

    100个JavaSE 经典例子(1-10)

    《JavaSE经典实例详解(1-10)》 在Java编程领域,Java Standard Edition (JavaSE) 是基础,它提供了...对于初学者来说,这是一个很好的起点,而对于有经验的开发者,这些实例也可以作为复习和巩固基础知识的参考。

    一个基于javase的学生管理系统

    本项目是一个使用Java标准版(JavaSE)开发的学生管理系统,主要面向编程初学者,旨在帮助他们理解并实践Java编程以及软件工程中的模型-视图-控制器(MVC)架构。系统的核心是SQLite数据库,这是一种轻量级、易于...

    javaSe 学生管理系统

    在这个"学生管理系统"项目中,我们重点讨论的是如何利用JavaSE的Swing库来开发一个用户界面,以及如何与数据库进行交互以实现学生数据的存储和管理。 Swing是Java提供的一套用于创建图形用户界面(GUI)的组件库。...

    JAVASE初学者教程菜鸟入门思维导图(详细版)

    内容涵盖javase基本语法、面向对象、集合框架、内部类常用类、IO流、多线程,适合学习一阶段的同学平时学习和复习,个人感觉写的比较细了。一起进步吧

    图书管理系统javase

    【图书管理系统javase】是一个基于Java Swing开发的项目,它为图书馆的日常运营提供了便捷的管理工具。系统可能包括了图书的入库、出库、借阅、归还、查询等功能,帮助管理员高效地处理图书信息和用户借阅记录。下面...

    JavaSE之Swing:仓库管理系统

    JavaSE之Swing仓库管理系统是一个基于Java编程语言的桌面应用程序,专为初学者设计,用于学习和实践Swing框架在构建实际系统中的应用。Swing是Java提供的一个丰富的图形用户界面(GUI)工具包,它允许开发者创建出...

    狂神笔记,b站狂神说课程笔记大全(最新)

    b站狂神说课程笔记大全,每个部分都有 狂神说java系列笔记(java基础+javaweb+ssm+微服务)全套 狂神说上课笔记未删减 Java基础到技术升级 1、JavaSE:Java入门 2、JavaSE:基础语法 3、JavaSE:流程控制 4、JavaSE...

    JavaSE项目企业员工管理系统

    【JavaSE项目企业员工管理系统】是一个基于Java标准版(JavaSE)开发的系统,主要用于企业的员工数据管理和操作。这个系统已经实现了一些基础的功能,确保无误(无Bug),但同时也预留了扩展性,允许开发者根据实际...

    JavaSE图书馆管理系统

    总的来说,JavaSE图书馆管理系统展示了Java在桌面应用开发中的强大能力,结合Swing的图形界面和MySQL的数据库管理,实现了一个实用的图书管理解决方案。这样的项目不仅锻炼了开发者在Java编程、数据库设计和GUI构建...

    core-3.3.3 + javase-3.3.3+ zxing-1.7-core + zxing-j2se-1.7

    ZXing,意为斑马线,是一个开源的、跨平台的条形码和二维码读取库。它支持多种格式,如QR码、Data Matrix、Aztec和UPC/EAN等。在给定的压缩包中,`zxing-1.7-core` 和 `zxing-j2se-1.7` 是ZXing项目的两个不同部分...

    基于javase学生信息管理系统

    在这个项目中,我们使用了JavaSE(Java标准版)作为主要的开发语言,结合MySQL数据库进行数据存储,构建了一个高效、稳定且易于操作的信息管理平台。 一、JavaSE基础与应用 JavaSE是Java的核心部分,提供了丰富的...

    javase下cmd使用例子.java

    javase下cmd的一个例子,相信给大家很大的帮助

Global site tag (gtag.js) - Google Analytics