Command命令设计模式 不念不忘少年蓝@ 2022-05-14 09:06 133阅读 0赞 > **文章最前**: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人[github][] ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。 **相关文章:** 1. [Command命令设计模式][Command] 2. **[Singleton单例设计模式][Singleton]** 3. **[Decorator装饰设计模式][Decorator]** 4. **[Template模板模式][Template]** 5. **[Strategy策略设计模式][Strategy]** 6. **[Proxy代理设计模式][Proxy]** 7. **[Factory工厂类设计模式][Factory]** 8. **[设计模式的6大基本原则][6]** -------------------- **文章目录:** 1.定义个monitor的接口 2.实现monitor的mymonitor的类 3.定义一个teacher类 4.定义一个sudent类 5.测试类 -------------------- 命名模式其实是比较好理解的,顾名思义,老师想让学生交作业,而不是跟每个学生都说,而是跟班长说,让学习委员传达老师的命令;三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行!老师要的是结果,不会去关注学生到底听到了没有。 -------------------- 命令模式的例子: ### **1.定义个monitor的接口** ### package CommandPattern; // 一个Monitor的接口 public interface Monitor { void execute(); } ### **2.实现monitor的mymonitor的类** ### package CommandPattern; /** *类描述:实现Monitor接口的MyMonitor类 *@author: 张宇 *@date: 日期: 2018年9月5日 时间: 下午7:25:29 */ public class MyMonitor implements Monitor { private Student student; public MyMonitor(Student student){ this.student=student; } @Override public void execute() { student.handingHomework(); } } ### **3.定义一个teacher类** ### /** *类描述:传递参数的Teacher对象 *@author: 张宇 *@date: 日期: 2018年9月5日 时间: 下午7:27:20 */ public class Teacher { private Monitor monitor; public Teacher(Monitor monitor){ this.monitor=monitor; } public void action(){ monitor.execute(); } } ### **4.定义一个sudent类** ### package CommandPattern; /** *类描述:Student类 *@author: 张宇 *@date: 日期: 2018年9月5日 时间: 下午7:26:36 */ public class Student { public void handingHomework(){ System.out.println("上交作业!!!"); } } ### **5.测试类** ### package CommandPattern; /** * 类描述:测试命令模式 * @author: 张宇 * @date: 日期: 2018年9月5日 时间: 下午5:57:06 */ public class HandingHomeworkTest { public static void main(String[] args) { // student对象传递给MyMonitor Student student = new Student(); Monitor cmd = new MyMonitor(student); // MyMonitor传递给Teacher Teacher teacher = new Teacher(cmd); // 最后调用teacher的方法 teacher.action(); } } **运行结果:** 上交作业!!! -------------------- ![70][] 方法关系调用图 -------------------- 命令模式就是让请求和执行分开,他们之间解耦。 [github]: https://github.com/zhangyu345293721 [Command]: https://blog.csdn.net/zy345293721/article/details/82429423 [Singleton]: https://blog.csdn.net/zy345293721/article/details/82153881 [Decorator]: https://blog.csdn.net/zy345293721/article/details/81838635 [Template]: https://blog.csdn.net/zy345293721/article/details/83819394 [Strategy]: https://blog.csdn.net/zy345293721/article/details/81290896 [Proxy]: https://blog.csdn.net/zy345293721/article/details/81183998 [Factory]: https://blog.csdn.net/zy345293721/article/details/83716363 [6]: https://blog.csdn.net/zy345293721/article/details/83500802 [70]: /images/20220514/71acfd3e329a44cf88fecc2bfe2adf52.png
还没有评论,来说两句吧...