您的位置:首页 > 房产 > 建筑 > 上海助君网络科技有限公司_维恩图在线制作网站_seo手机优化软件哪个好用_深圳seo优化外包

上海助君网络科技有限公司_维恩图在线制作网站_seo手机优化软件哪个好用_深圳seo优化外包

2024/12/23 8:16:14 来源:https://blog.csdn.net/qq_34207898/article/details/144153226  浏览:    关键词:上海助君网络科技有限公司_维恩图在线制作网站_seo手机优化软件哪个好用_深圳seo优化外包
上海助君网络科技有限公司_维恩图在线制作网站_seo手机优化软件哪个好用_深圳seo优化外包

在Java中,您可以使用面向对象编程中的继承和多态性来实现您的需求。首先,我们定义一个`Good`类,该类包含满减策略和打折策略。然后,我们可以让`Shoe`类和`Cloth`类继承自`Good`类。为了实现不同的折扣或满减策略,可以考虑使用策略模式。

 

下面是一个简单的实现示例:

 

### 1. 定义策略接口

 

首先,我们需要定义一个策略接口,该接口可以被不同的具体策略实现。

 

```java

public interface DiscountStrategy {

    double applyDiscount(double originalPrice);

}

```

 

### 2. 实现具体的策略

 

接下来,我们实现几个具体的策略,例如满减和打折。

 

```java

public class FullReductionStrategy implements DiscountStrategy {

    private double threshold;

    private double reduction;

 

    public FullReductionStrategy(double threshold, double reduction) {

        this.threshold = threshold;

        this.reduction = reduction;

    }

 

    @Override

    public double applyDiscount(double originalPrice) {

        return originalPrice >= threshold ? originalPrice - reduction : originalPrice;

    }

}

 

public class PercentageDiscountStrategy implements DiscountStrategy {

    private double discountRate;

 

    public PercentageDiscountStrategy(double discountRate) {

        this.discountRate = discountRate;

    }

 

    @Override

    public double applyDiscount(double originalPrice) {

        return originalPrice * (1 - discountRate);

    }

}

```

 

### 3. 定义商品基类

 

现在,我们定义`Good`类,并给它添加一个`DiscountStrategy`类型的字段,以及应用折扣的方法。

 

```java

public abstract class Good {

    protected String name;

    protected double price;

    protected DiscountStrategy discountStrategy;

 

    public Good(String name, double price, DiscountStrategy discountStrategy) {

        this.name = name;

        this.price = price;

        this.discountStrategy = discountStrategy;

    }

 

    public double getPriceAfterDiscount() {

        return discountStrategy.applyDiscount(price);

    }

 

    // Getters and Setters

    public String getName() {

        return name;

    }

 

    public void setName(String name) {

        this.name = name;

    }

 

    public double getPrice() {

        return price;

    }

 

    public void setPrice(double price) {

        this.price = price;

    }

 

    public DiscountStrategy getDiscountStrategy() {

        return discountStrategy;

    }

 

    public void setDiscountStrategy(DiscountStrategy discountStrategy) {

        this.discountStrategy = discountStrategy;

    }

}

```

 

### 4. 创建子类

 

最后,创建`Shoe`和`Cloth`类,它们都继承自`Good`类。

 

```java

public class Shoe extends Good {

    public Shoe(String name, double price, DiscountStrategy discountStrategy) {

        super(name, price, discountStrategy);

    }

}

 

public class Cloth extends Good {

    public Cloth(String name, double price, DiscountStrategy discountStrategy) {

        super(name, price, discountStrategy);

    }

}

```

 

### 5. 使用示例

 

下面是如何使用这些类的一个简单示例:

 

```java

public class Main {

    public static void main(String[] args) {

        DiscountStrategy shoeDiscount = new PercentageDiscountStrategy(0.1); // 10% off

        DiscountStrategy clothDiscount = new FullReductionStrategy(100, 20); // 满100减20

 

        Shoe shoe = new Shoe("Running Shoe", 150, shoeDiscount);

        Cloth cloth = new Cloth("T-shirt", 80, clothDiscount);

 

        System.out.println("Shoe Price After Discount: " + shoe.getPriceAfterDiscount());

        System.out.println("Cloth Price After Discount: " + cloth.getPriceAfterDiscount());

    }

}

```

 

这段代码展示了如何通过策略模式灵活地为不同种类的商品设置不同的折扣策略。希望这能帮助您解决问题!如果有任何其他问题或需要进一步的帮助,请随时告诉我。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com