java練習:6. 商品打折接口

Test類

package com.LearnTest02.practice.Dao;
/*
 * 定義一個打折的接口,封裝一個折扣操作,可以根據原價計算折扣之後的價格
 * 定義一個不打折的類實現打折接口
 * 定義一個八折實現類實現打折接口
 * 再定義按比例返現的類實現打折接口
 * 定義一個商品類,該類有商品名稱,原價,打折方式等幾個字段,定義一個方法,打折商品折扣之後的價格
 */
public class Test {

	public static void main(String[] args) {
		Product lenovo = new Product("lenovo", 5800,new TwentyOffDiscount());
		lenovo.printInfo();
		
		Product Dell = new Product("Dell", 5800,new NoDiscount());
		Dell.printInfo();
		
		Product Nike = new Product("Nike", 580,new CashBackDiscount());
		Nike.printInfo();
		}
}

Product類

package com.LearnTest02.practice.Dao;
//定義一個商品類,該類有商品名稱,原價,打折方式等幾個字段,定義一個方法,打折商品折扣之後的價格
public class Product {

	String name;
	double originalprice;
	Discountable discountable;
	
	public Product(String name, double originalprice, Discountable discountable) {
		super();
		this.name = name;
		this.originalprice = originalprice;
		this.discountable = discountable;
	}

	public void printInfo() {
		System.out.println("商品名稱:" + name + ",原價:" + originalprice 
				+ ",折扣價:" + discountable.getDiscountable(originalprice));
	}
	
}

Discountable接口

package com.LearnTest02.practice.Dao;
/*
 * 打折接口
 */
public interface Discountable {

	//根據原價返回折扣之後的結果
	double getDiscountable(double originalPrice);
	
}

NoDiscount類

package com.LearnTest02.practice.Dao;
/*
 * 不打折
 */
public class NoDiscount implements Discountable{
	//原價返回
	@Override
	public double getDiscountable(double originalPrice) {
		return originalPrice;
	}
}

TwentyOffDiscount類

package com.LearnTest02.practice.Dao;
/*
 * 八折
 */
public class TwentyOffDiscount implements Discountable {

	@Override
	public double getDiscountable(double originalPrice) {
		return originalPrice*0.8;
	}

}

CashBackDiscount類

package com.LearnTest02.practice.Dao;
/*
 * 按比例返現
 */
public class CashBackDiscount implements Discountable {

	@Override
	public double getDiscountable(double originalPrice) {
		if(originalPrice >= 300) {
			return originalPrice-50;
		}else if(originalPrice >= 200) {
			return originalPrice-25;
		}else {
		return originalPrice;
		}
		
	}

}

結果爲:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章