zoukankan      html  css  js  c++  java
  • CommandPattern

    /**
     * 命令模式
     * @author TMAC-J
     * 将调用者和接受者分离
     * 可以将一组命令组合在一起,适合很多命令的时候
     */
    public class CommandPattern {
        
        interface Command{
            void excute();
        }
        
        public class TVReceiver{
            
            public void shift(){
                System.out.println("shift");
            }
            
            public void turnon(){
                System.out.println("turnon");
            }
            
            public void Turndown(){
                System.out.println("Turndown");
            }
            
        }
        
        public class ShiftTV implements Command{
    
            private TVReceiver tv;
            
            public ShiftTV(TVReceiver tv) {
                this.tv = tv;
            }
            
            @Override
            public void excute() {
                tv.shift();
            }
            
        }
        
        public class TurnonTV implements Command{
            
            private TVReceiver tv;
            
            public TurnonTV(TVReceiver tv) {
                this.tv = tv;
            }
            
            @Override
            public void excute() {
                tv.turnon();
            }
            
        }
        public class Turndown implements Command{
            
            private TVReceiver tv;
            
            public Turndown(TVReceiver tv) {
                this.tv = tv;
            }
            
            @Override
            public void excute() {
                tv.Turndown();
            }
            
        }
        
        public class Invoker{
            
            private Command shiftTv,turnon,turndown;
            
            public Invoker(Command shiftTv,Command turnonTV,Command turndown) {
                this.shiftTv = shiftTv;
                this.turnon = turndown;
                this.turndown = turndown;
            }
            
            public void shift(){
                shiftTv.excute();
            }
    
            public void turnon(){
                turnon.excute();
            }
            
            public void turndown(){
                turndown.excute();
            }
        }
        
        public class Client{
            public void test(){
                TVReceiver tv = new TVReceiver();
                Invoker invoker = new Invoker(new ShiftTV(tv), new TurnonTV(tv), new Turndown(tv));
                invoker.shift();
                invoker.turnon();
                invoker.turndown();
            }
        }
        
        
    }
  • 相关阅读:
    python3 入门
    Python2 的列表排序
    数据库阻塞SQL的隔离级别
    数据库阻塞讲解设计应用程序时避免阻塞的八个准则
    DELPHI学习简单类型
    DELPHI学习结构类型
    InsideVCL第3章面向对象程序语言和Framework
    数据库阻塞分析死锁并处理
    面向对象开发实践之路
    DELPHI hint 的应用
  • 原文地址:https://www.cnblogs.com/yzjT-mac/p/6233593.html
Copyright © 2011-2022 走看看