时间:2021-05-20
基于有了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); } }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 ); } }}Market.java
package strategy;/** * * @author Andy * */public class Market { /** * 对可打折的一类事物进行打折 * @param apple */ public static void discountSell(Discountable d) { d.discountSell();}}Discountable.java
package strategy;/** * * @author Andy * */public interface Discountable { public void discountSell();}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); } }声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了PHP设计模式之策略模式(Strategy)入门与应用。分享给大家供大家参考,具体如下:这个策略模式,意思就是定义一系列算法,把它们一个个封装起来
本文实例讲述了Java设计模式之单例模式。分享给大家供大家参考,具体如下:单例模式:(SingletonPattern)是一个比较简单的模式,其定义如下:Ens
本文实例讲述了Java设计模式之静态工厂模式。分享给大家供大家参考,具体如下:静态工厂模式(staticfactory)也叫简单工厂模式。涉及到3个角色:工厂类
java模式匹配之蛮力匹配/***模式匹配之蛮力匹配*/packagejavay.util;/***PatternMatchBrute-Force*@autho
本文实例讲述了Java设计模式之桥接模式。分享给大家供大家参考,具体如下:概念:桥接模式(BridgePattern):将抽象部分与它的实现部分分离,使它们都可