基于有了oo的基础后,开始认真学习设计模式!设计模式是java设计中必不可少的!
Apple.java
package strategy;
/**
*
* @author Andy
*
*/
public class Apple implements Discountable {
//重量
private double weight;
//单价 实际开发中 设计金钱等精确计算都是BigDecimal;
private double price;
//按购买量打折
// private Discountor d = new AppleWeightDiscountor();
//按购买总价打折
private Discountor d = new ApplePriceDiscountor();
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public Apple (double weight,double price ){
super();
this.weight=weight;
this.price=price;
}
@Override
public void discountSell() {
d.discount(this);
}
}
立即学习“Java免费学习笔记(深入)”;
Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的
Banana.java
package strategy;
/**
*
* @author Andy
*
*/
public class Banana implements Discountable {
//重量
private double weight;
////单价 实际开发中 涉及金钱等精确计算都是用BigDecimal
private double price;
public Banana(double weight, double price) {
super();
this.weight = weight;
this.price = price;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public void discountSell() {
//打折算法
if(weight < 5) {
System.out.println("Banana未打折价钱: " + weight * price);
}else if(weight >= 5 && weight < 10) {
System.out.println("Banana打八八折价钱: " + weight * price * 0.88 );
}else if(weight >= 10) {
System.out.println("Banana打五折价钱: " + weight * price * 0.5 );
}
}
}
立即学习“Java免费学习笔记(深入)”;
Market.java
package strategy;
/**
*
* @author Andy
*
*/
public class Market {
/**
* 对可打折的一类事物进行打折
* @param apple
*/
public static void discountSell(Discountable d) {
d.discountSell();
}
}
立即学习“Java免费学习笔记(深入)”;
Discountable.java
package strategy;
/**
*
* @author Andy
*
*/
public interface Discountable {
public void discountSell();
}
立即学习“Java免费学习笔记(深入)”;
Test.java
package strategy;
/**
*
* @author Andy
*
*/
public class Test {
/**
*
* @param args
*/
public static void main(String[] args) {
// 只能对苹果打折 还不能对通用的一类事物打折 而且都是要卖什么就写什么打折算法
// 其实每类事物打折算法又是不一致的
Discountable d = new Apple(10.3, 3.6);
Discountable d1= new Banana(5.4,1.1);
Market.discountSell(d);
Market.discountSell(d1);
}
}
立即学习“Java免费学习笔记(深入)”;
更多Java设计模式之Strategy模式相关文章请关注PHP中文网!










