丹阳如何做百度的网站,网站建设技术优势,嘉兴公司网站建设,做购物网站收费刘备要到江东娶老婆了#xff0c;走之前诸葛亮给赵云#xff08;伴郎#xff09;三个锦囊妙计#xff0c;说是按天机拆开解决棘手问题#xff0c; 嘿#xff0c;还别说#xff0c;真是解决了大问题#xff0c;搞到最后是周瑜陪了夫人又折兵呀#xff0c;那咱们先看看… 刘备要到江东娶老婆了走之前诸葛亮给赵云伴郎三个锦囊妙计说是按天机拆开解决棘手问题 嘿还别说真是解决了大问题搞到最后是周瑜陪了夫人又折兵呀那咱们先看看这个场景是什么样子 的。 1 先说这个场景中的要素 三个妙计一个锦囊一个赵云 妙计是小亮同志给的妙计是放置在锦囊 里俗称就是锦囊妙计嘛那赵云就是一个干活的人从锦囊中取出妙计执行然后获胜用 JAVA 程序 怎么表现这个呢我们先看类图 代码实现 (1)编写3个妙计 定义妙计策略接口 package strategy;/*** 策略接口:妙计** 锦囊一:到达东吴,先去拜会乔国老;锦囊二:刘备贪念美色不思离开,就对他谎称曹操大军压境;锦囊三:如果被东吴军队追赶,求孙夫人解围。** author 1*/
public interface IStrategy {/*** 锦囊妙计*/public void operate();
} package strategy;/*** 第一个锦囊** author 1* version 1.0* description: TODO* date 2023/8/9 17:02*/
public class FirstMethod implements IStrategy {Overridepublic void operate() {System.out.println(锦囊一:到达东吴,先去拜会乔国老.);}
} package strategy;/*** 第二个锦囊** author 1* version 1.0* description: 第二个锦囊* date 2023/8/9 17:04*/
public class SecondMethod implements IStrategy {Overridepublic void operate() {System.out.println(锦囊二:刘备贪念美色不思离开,就对他谎称曹操大军压境.);}
} package strategy;/*** author 1* version 1.0* description: TODO* date 2023/8/9 17:07*/
public class ThirdMethod implements IStrategy {Overridepublic void operate() {System.out.println(锦囊三:如果被东吴军队追赶,求孙夫人解围.);}
} (2)编写锦囊 package strategy;/*** 锦囊** author 1* version 1.0* description: TODO* date 2023/8/9 17:08*/
public class Context {private IStrategy strategy;public Context(IStrategy strategy) {this.strategy strategy;}/*** 使用锦囊*/public void operate() {this.strategy.operate();}
}(3)编写赵云(使用锦囊的人)有兴趣可以看两种调用方法,没兴趣看第一个就行 package strategy;/*** author 1* version 1.0* description: TODO* date 2023/8/9 16:59*/
public class ZhaoYun {/***方法一:* param args*/public static void main(String[] args) {Context context;//1.赵云到吴国拿出第一个锦囊context new Context(new FirstMethod());context.operate();//2.刘备不想走,拿出第二个锦囊context new Context(new SecondMethod());context.operate();//3.孙权有追兵,拿出第三个锦囊context new Context(new ThirdMethod());context.operate();}/**方法二:条件封装,因为需要new的三个妙计提前是知道的,可以封装到map中,依次调用* param args*/
// public static void main(String[] args) {
// MapInteger, IStrategy map new HashMapInteger, IStrategy() {{
// put(1, new FirstMethod());
// put(2, new SecondMethod());
// put(3, new ThirdMethod());
// }};
//
// Context context;
// //1.赵云到吴国拿出第一个锦囊
// context new Context(map.get(1));
// context.operate();
// //2.刘备不想走,拿出第二个锦囊
// context new Context(map.get(2));
// context.operate();
// //3.孙权有追兵,拿出第三个锦囊
// context new Context(map.get(3));
// context.operate();
// }} 执行结果