文章目录
Bridge
Bird
public abstract class Bird{
//Fly
protected FlyBehavior flyBehavior;
//Swim
protected SwimBehavior swimBehavior;
public Bird(FlyBehavior flyBehavior,SwimBehavior swimBehavior){
this.flyBehavior = flyBehavior;
this.swimBehavior = swimBehavior;
}
public abstract void display();
}
Eagle
public class Eagle extends Bird {
public Eagle(FlyBehavior flyBehavior, SwimBehavior swimBehavior){
super(flyBehavior,swimBehavior);
}
@Override
public void display() {
System.out.println("我是老鹰");
flyBehavior.Fly();
swimBehavior.Swim();
}
}
Penguin
public class Penguin extends Bird {
public Penguin(FlyBehavior flyBehavior, SwimBehavior swimBehavior){
super(flyBehavior,swimBehavior);
}
@Override
public void display() {
System.out.println("我是企鹅");
flyBehavior.Fly();
swimBehavior.Swim();
}
}
FlyBehavior
public interface FlyBehavior {
void Fly();
}
AbleFly
public class AbleFly implements FlyBehavior {
@Override
public void Fly() {
System.out.println("展翅翱翔");
}
}
UnableFly
public class UnableFly implements FlyBehavior {
@Override
public void Fly() {
System.out.println("扑腾几下飞不起来");
}
}
SwimBehavior
public interface SwimBehavior {
void Swim();
}
AbleSwim
public class AbleSwim implements SwimBehavior {
@Override
public void Swim() {
System.out.println("鱼翔浅底");
}
}
UnableSwim
public class UnableSwim implements SwimBehavior {
@Override
public void Swim() {
System.out.println("扑腾几下就淹死了");
}
}
Client
public class Client {
public static void main(String[] args) {
//eagle
Bird bird = new Eagle(new AbleFly(),new UnableSwim());
bird.display();
System.out.println("=================================");
//penguin
Bird bird1 = new Penguin(new UnableFly(),new AbleSwim());
bird1.display();
}
}
Strategy
DiscountStrategy
public interface DiscountStrategy {
void getDiscount();
}
GoldCardUserDiscountStrategy
public class GoldCardUserDiscountStrategy implements DiscountStrategy {
@Override
public void getDiscount() {
System.out.println("您是金卡用户,获得的折扣为: 八折");
}
}
RegularUserDiscountStrategy
public class RegularUserDiscountStrategy implements DiscountStrategy {
@Override
public void getDiscount() {
System.out.println("您是普通用户,没有折扣");
}
}
SilverCardUserDiscountStrategy
public class SilverCardUserDiscountStrategy implements DiscountStrategy {
@Override
public void getDiscount() {
System.out.println("您是银卡用户,获得的折扣为: 九折");
}
}
Context
public class Context {
private DiscountStrategy discountStrategy;
public Context(DiscountStrategy discountStrategy) {
this.discountStrategy = discountStrategy;
}
public void discount(){
discountStrategy.getDiscount();
}
}
Client
public class Client {
public static void main(String[] args) {
//RegularUser
Context context = new Context(new RegularUserDiscountStrategy());
context.discount();
System.out.println("-----------------------------------------");
//GoldCardUse
context = new Context(new GoldCardUserDiscountStrategy());
context.discount();
System.out.println("-----------------------------------------");
//SilverCardUser
context = new Context(new SilverCardUserDiscountStrategy());
context.discount();
}
}
s