js设计模式之策略模式

//普通用户

function Price(){

    this.discount =1

}

Price.prototype.getPrice =function(price){

    return price *this.discount

}

//vip用户

function VipPrice(){

    this.discount =0.5

}

VipPrice.prototype.getPrice =function(price){

    return price *this.discount

}

//超级VIP用户

function SuperVipPrice(){

    this.discount =0.3

}

SuperVipPrice.prototype.getPrice =function(price){

    return price *this.discount

}

//上下文

function Context(){

    this.name="";

    this.strategy=null;

    this.price=0

}

Context.prototype.set=function(name,strategy,price){

    this.name=name;

    this.strategy=strategy;

    this.price=price;

}

Context.prototype.getResult=function(){

    console.log(this.name+"的价格是:"+this.strategy.getPrice(this.price))

}

let context =new Context();

let price =new Price();

context.set("普通用户",price,200);

context.getResult();

let vipPrice =new VipPrice();

context.set("vip用户",vipPrice,200);

context.getResult();

let superVipPrice =new SuperVipPrice();

context.set("超级vip用户",superVipPrice,200);

context.getResult();

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容