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;
		}
		
	}

}

结果为:

你可能感兴趣的:(java练习)