⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 analysis.java

📁 java中最响当当的模式:观察者模式
💻 JAVA
字号:
/**
 do analysis
*/
public class Analysis implements Observer, DisplayShare
{
	/*easy to understand why we have such  variables*/
   	private double charge=0;
   	private double maxCharge=0;
   	private double minCharge=0;
   	private double sumCharge=0;
   	private double avgCharge=0;
    private AbsSubject myShare;
    private int doTime=0;


    /*instruct function*/
    public Analysis(AbsSubject myShare)
    {
        /*register to the distributor*/
		this.myShare=myShare;
		myShare.registerObserver(this);
	}
	/*inherit the function from Observer*/
	public void update(double charge)
	{
		doAnalysis(charge);
	}
	/*the key code of this class */
	public void doAnalysis(double charge)
	{
		/*how many times the object has been visited */
		if(doTime==0)
		{
			maxCharge=charge;
			minCharge=charge;
			sumCharge=charge;
			this.charge=charge;
		}
		else
		{
			/*change the max and the min*/
			if(charge>maxCharge)
			{
				maxCharge=charge;
			}
			if(charge<minCharge)
			{
				minCharge=charge;
			}
			/*assignment*/
			this.charge=charge;
			/*cal the sum of the charge*/
			sumCharge+=charge;
		}
        /*one more time visited*/
		doTime++;
		/*avg you know*/
		avgCharge=sumCharge/doTime;
		/*display*/
		display();
	}
	/*I am sure you can understand*/
	public void display()
	{
		System.out.println("Work has been done for "+doTime+" time(s).");
		System.out.println("   max               min               avg   ");
		System.out.println(maxCharge+" "+minCharge+" "+avgCharge);
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -