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

网站建设get你重庆优化网站推广

网站建设get你,重庆优化网站推广,wordpress微信小程序源码,除尘环保设备网站模板目录 一 工厂模式 1.1 思想 1.2 案例 1.2.1 接口 1.2.2 实现类 1.2.3 工厂类 1.2.4 调用 二 策略模式 2.1 思想 2.2 案例 2.2.1 接口 2.2.2 实现类 2.2.3 策略类 2.2.4 调用 三 工厂模式策略模式 3.1 思想 3.2 案例 3.2.1 接口 3.2.2 实现类 3.2.3 定义F…

目录

一 工厂模式

1.1 思想

1.2 案例

1.2.1 接口

1.2.2 实现类

1.2.3 工厂类

1.2.4 调用

二 策略模式

2.1 思想

2.2 案例

2.2.1 接口

2.2.2 实现类

2.2.3 策略类

2.2.4 调用

三  工厂模式+策略模式

3.1 思想

3.2 案例

3.2.1 接口

3.2.2 实现类

3.2.3  定义Factory

3.2.4 调试

一 工厂模式

1.1 思想

* 1.定义一个接口
* 2.定义一个实现类
* 3.定义一个根据传入参数,产生对象的工厂类
* 4.通过工厂类调用具体对象的方法

1.2 案例

1.2.1 接口

public interface BankInfo {public  void payMoney();
}

1.2.2 实现类

public class BocBank implements BankInfo{@Overridepublic void payMoney() {System.out.println("中国银行取钱50元");}
}
public class IcbcBank implements BankInfo{@Overridepublic void payMoney() {System.out.println("工商银行银行取钱50元");}
}

1.2.3 工厂类

public class ObjectFactory {public BankInfo buildObjectInfo(String str){if (str == null){return null;}else if ("boc".equals(str)) {return new BocBank();}else if ("icbc".equals(str)) {return new IcbcBank();}else {return null;}}
}

1.2.4 调用

/*** @ClassName: TestFt* @Description: TODO* @Author: admin* 1.定义一个接口* 2.定义一个实现类* 3.定义一个根据传入参数,产生对象的工厂类* 4.通过工厂类调用具体对象的方法*** @Date: 2024/08/01 20:56:05 * @Version: V1.0**/
public class TestFt {public static void main(String[] args) {ObjectFactory objectFactory = new ObjectFactory();BankInfo bankInfoBank =  objectFactory.buildObjectInfo("icbc");bankInfoBank.payMoney();}
}

二 策略模式

2.1 思想

 1.定义一个策略接口,在接口中声明一个行为方法
* 2.定义多个策略实现类,并实现策略接口,重写行为方法,实现各自逻辑
* 3.定义一个context上下文,用于调用具体的策略方法,供客户端使用;通过new context的构造函数传入策略对象,然后通过此对象调用策略行为方法。

2.2 案例

2.2.1 接口

public interface BankInfo {public void payMoney(int a,int b);
}

2.2.2 实现类

public class BocBank implements BankInfo{@Overridepublic void payMoney(int a,int b) {System.out.println("中国银行,累加:"+(a+b));}
}
public class IcbcBank implements BankInfo{@Overridepublic void payMoney(int a, int b) {System.out.println("中国工商银行,扣减:"+(a-b));}
}

2.2.3 策略类

public class StaragePattern {private BankInfo bankInfo;public StaragePattern(BankInfo bankInfo) {this. bankInfo = bankInfo;}public  void  contextInfo(int a,int b){bankInfo.payMoney(a,b);}
}

2.2.4 调用

/*** @ClassName: TestS* @Description: TODO* 1.定义一个策略接口,在接口中声明一个行为方法* 2.定义多个策略实现类,并实现策略接口,重写行为方法,实现各自逻辑* 3.定义一个context上下文,用于调用具体的策略方法,供客户端使用;通过new context的构造函数传入策略对象,然后通过此对象调用策略行为方法。* https://zhuanlan.zhihu.com/p/680317010* @Author: admin* @Date: 2024/08/02 11:28:34 * @Version: V1.0**/
public class TestS {public static void main(String[] args) {
//        StaragePattern staragePattern = new StaragePattern(new BocBank());
//        staragePattern.contextInfo(30,20);}
}

三  工厂模式+策略模式

3.1 思想

1.定义接口实现InitializingBean,重写 void afterPropertiesSet(),在服务启动时候,自动执行子类中的afterPropertiesSet()方法。

3.2 案例

3.2.1 接口

public interface HandlerStrategyFactory  extends InitializingBean {void getCoca(String parameter);
}

3.2.2 实现类

@Component
public class CocaHandlerV2 implements HandlerStrategyFactory{@Overridepublic void getCoca(String parameter){System.out.println("我是可口可乐-策略+工厂 "+parameter);}@Overridepublic void afterPropertiesSet() throws Exception{//K          //VFactory.register("Coca",this);}
}
@Component
public class PepsiHandlerV2 implements HandlerStrategyFactory{@Overridepublic void getCoca(String parameter){System.out.println("我是百事可乐-策略+工厂 "+parameter);}@Overridepublic void afterPropertiesSet() throws Exception{Factory.register("Pepsi",this);}
}

3.2.3  定义Factory

public class Factory {private static Map<String, HandlerStrategyFactory> strategyMap = new ConcurrentHashMap<>();public static HandlerStrategyFactory getInvokeStrategy(String str){return strategyMap.get(str);}public static void register(String str ,HandlerStrategyFactory handler){System.out.println("str: "+str+"\t handler: "+handler);if (null == str || null == handler){return;}strategyMap.put(str,handler);}
}

3.2.4 调试

@SpringBootTest
public class DesignPatternTest
{/*** 策略+工厂V2*/@Testpublic void methodV2(){String parameter = "Coca";HandlerStrategyFactory invokeStrategy = Factory.getInvokeStrategy(parameter);invokeStrategy.getCoca(parameter);}
}

结果图:

http://www.yayakq.cn/news/391827/

相关文章:

  • 面试网站开发江苏泰兴网站建设
  • 杭州市萧山区市场建设开发网站北京外贸网站优化
  • 品牌网站建设十a小蝌蚪自适应型网站建设费用
  • 杭州购物网站建设wordpress 论坛整合
  • 电影网站 备案建e网室内设计网别墅
  • 找个专门做各种外卖的网站北京免备案网站建设
  • 企业网站变成app的方法做网站还是微信小程序
  • 福州医院网站建设公司网站维护与建设ppt
  • 做网站最便宜西安信息网站建设
  • 织梦可以做视频网站么深圳信科网站建设
  • 查看网站源代码建站可以烟台网站设计公司推荐
  • 推广型网站建设软件网站建设推介会发言稿
  • 优秀的个人网站设计网站建设 中企动力东莞后台管理
  • wordpress网站不安全网络推广关键词优化公司
  • 九江企业网站制作做外贸网站空间多少g
  • 市场部做网站工作职责找别人做网站 自己管理
  • 南京建设网站内容做网站备案成功后怎么办
  • 制作公司网站价格linode vps wordpress
  • angularjs 网站模版扬州开发区建设局网站
  • 营销型网站功能表中国城乡建设网
  • wordpress能做什么网站网站开发规格
  • 制作简单公司网站流程营销技巧第一季
  • 微信登录建设银行网站网站建设在商标第几类
  • 带后台的php网站模板手机建网站挣钱吗
  • 网站换程序301做网站可以干嘛
  • 门户网站软文金华模板建站定制网站
  • 最佳网站桐城网站建设
  • 全栈网站开发者网站建设管理和运行维护制度
  • 内蒙古网站备案徐州的网站设计
  • 网站建设技术流程图网站psd模版