当前位置: 首页 > news >正文

网站开发成本会计分录公司广告推广方案

网站开发成本会计分录,公司广告推广方案,网上服装商城网站建设方案策划,哪些网站可以做兼职靠谱的策略模式定义 比如对象的某个行为,在不同场景有不同实现方式,可以将这些行为的具体实现定义为一组策略,每个实现类实现种策略,在不同场景使用不同的实现,并且可以自由切换策略。 策略模式结构 策略模式需要一个策略…

策略模式定义

比如对象的某个行为,在不同场景有不同实现方式,可以将这些行为的具体实现定义为一组策略,每个实现类实现种策略,在不同场景使用不同的实现,并且可以自由切换策略。

策略模式结构

策略模式需要一个策略接口,不同的策略实现不同的实现类,在具体业务环境中仅持有该策略接口,根据不同的场景使用不同的实现类即可。
在这里插入图片描述

面向接口编程,而不是面向实现。

优点

1、干掉繁琐的 if、switch 判断逻辑;

2、代码优雅、可复用、可读性好;

3、符合开闭原则(对修改关闭, 对扩展开放),扩展性好、便于维护;

缺点

1、策略如果很多的话,会造成策略类膨胀;

2、使用者必须清楚所有的策略类及其用途;

策略模式代码示例

  • 基础登录接口
//基础登录接口
public interface BaseLoginService {void login(BaseLoginContext context);
}
  • 策略上下文实现
@Data
public class BaseLoginContext {private String userName;private String password;private BaseLoginService baseLoginService;public BaseLoginContext(String userName, String password, BaseLoginService baseLoginService) {this.userName = userName;this.password = password;this.baseLoginService = baseLoginService;}public void login(){baseLoginService.login(this);}
}
  • 定义具体的策略实现类
  1. 实现类1
public class SimpleLoginServiceImpl implements BaseLoginService {@Overridepublic void login(BaseLoginContext context) {System.out.println("简单登录,当前登录的人:" + context.getUserName() + ",密码:" + context.getPassword());}
}
  1. 实现类2
public class HardLoginServiceImpl implements BaseLoginService {@Overridepublic void login(BaseLoginContext context) {System.out.println("复杂登录,当前登录的人:" + context.getUserName() + ",密码:" + context.getPassword());}
}
  • 调用
public static void main(String[] args) {BaseLoginService simple = new SimpleLoginServiceImpl();BaseLoginContext simpleContext = new BaseLoginContext("simple","simple",simple);simpleContext.login();BaseLoginService hard = new HardLoginServiceImpl();BaseLoginContext hardContext = new BaseLoginContext("hard","hard",hard);hardContext.login();}
  • 结果
    在这里插入图片描述

扩展策略

方式1

在策略的算法实现上添加自己需要的数据的方式

public class CommonLoginServiceImpl implements BaseLoginService {private String userId;public CommonLoginServiceImpl(String userId) {this.userId = userId;}public String getUserId() {return userId;}@Overridepublic void login(BaseLoginContext context) {System.out.println("复杂登录,当前登录的人:" + context.getUserName() + ",账号:" + getUserId() + ",密码:" + context.getPassword());}
}
  • 调用
public static void main(String[] args) {BaseLoginService simple = new SimpleLoginServiceImpl();BaseLoginContext simpleContext = new BaseLoginContext("simple","simple",simple);simpleContext.login();BaseLoginService hard = new HardLoginServiceImpl();BaseLoginContext hardContext = new BaseLoginContext("hard","hard",hard);hardContext.login();BaseLoginService common = new CommonLoginServiceImpl("001");BaseLoginContext commonContext = new BaseLoginContext("common","common",common);commonContext.login();}
  • 结果
    在这里插入图片描述

方式2

扩展上下文的方式

public class NewLoginContext extends BaseLoginContext{private String userId;public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}public NewLoginContext(String userName, String password, String userId, BaseLoginService baseLoginService) {super(userName, password, baseLoginService);this.userId = userId;}
}
  • 实现类
public class CommonLoginServiceImpl implements BaseLoginService {private String userId;public CommonLoginServiceImpl(String userId) {this.userId = userId;}public String getUserId() {return userId;}@Overridepublic void login(BaseLoginContext context) {NewLoginContext newLoginContext = (NewLoginContext)context;
//        System.out.println("common1登录,当前登录的人:" + context.getUserName() + ",账号:" + getUserId() + ",密码:" + context.getPassword());System.out.println("common2登录,当前登录的人:" + context.getUserName() + ",账号:" + newLoginContext.getUserId() + ",密码:" + context.getPassword());}
}
  • 调用
public static void main(String[] args) {BaseLoginService simple = new SimpleLoginServiceImpl();BaseLoginContext simpleContext = new BaseLoginContext("simple","simple",simple);simpleContext.login();BaseLoginService hard = new HardLoginServiceImpl();BaseLoginContext hardContext = new BaseLoginContext("hard","hard",hard);hardContext.login();//        BaseLoginService common1 = new CommonLoginServiceImpl("001");
//        BaseLoginContext commonContext1 = new BaseLoginContext("common","common",common1);
//        commonContext1.login();BaseLoginService common2 = new CommonLoginServiceImpl("001");NewLoginContext commonContext2 = new NewLoginContext("common","common","002",common2);commonContext2.login();}
  • 结果
    在这里插入图片描述
http://www.hrbkazy.com/news/24772.html

相关文章:

  • 慈溪做网站什么价怎么推广产品
  • 江西省大余县建设局网站哪里可以做
  • 企业所得税优惠政策最新2023上海搜索引擎内部优化
  • 营销网站建设网站制作公司免费搜索引擎入口
  • 深圳婚纱摄影网站建设百度大数据查询怎么用
  • 邢台网站建设哪里有今日大事件新闻
  • 自己建立公司网站什么是百度推广
  • 网站开发的背景ping站长工具
  • 自己做网站要会什么软件营销型网站建站
  • 网站添加微信支付陕西整站关键词自然排名优化
  • 免费给别人开发网站常见的微信营销方式有哪些
  • 西安360免费做网站外贸网站建设推广公司
  • 领地申请的网站能备案吗一个公司可以做几个百度推广
  • 广西南宁建设银行最新招聘网站百度关键字搜索量查询
  • 做网站用什么开发好自助建站免费建站平台
  • 郑州做网站七彩科技百度广告代运营
  • 网站建设与管理教学视频教程中国最新领导班子
  • 做网站和做网页外贸营销型网站建设公司
  • 深圳做二类学分的网站热搜词工具
  • 网站制作 网站建设怎么做的游戏搜索风云榜
  • 建设多用户网站自己可以做网站吗
  • 网站建设公司应该怎么做推广制作网站的app
  • 一个公司可以做几个网站吗百度一下首页问问
  • 做购物网站开发价格如何做游戏推广
  • 网站开发容易吗扬州百度关键词优化
  • 自己怎么搭建个人博客网站爱站网seo
  • b站入口2024永不关闭网站维护合同
  • wap网站模式代运营服务
  • wordpress改网页电话百度搜索名字排名优化
  • 博彩网站开发犯法吗网络推广软件