• iOS设计模式


    iOS设计模式 - 桥接

    示意图

    说明

    1. 桥接模式为把抽象层次结构从实现中分离出来,使其可以独立变更,抽象层定义了供客户端使用的上层抽象接口,实现层次结构定义了供抽象层次使用的底层接口,实现类的引用被封装于抽象层的实例中,桥接就形成了.

    2. 桥接模式可以解决具有功能类似但又不完全相同的某种功能架构,为了能让实现更加灵活.

    源码

    https://github.com/YouXianMing/iOS-Design-Patterns

    //
    //  ConsoleController.h
    //  GameBoy
    //
    //  Created by YouXianMing on 15/7/26.
    //  Copyright (c) 2015年 YouXianMing. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "ConsoleEmulator.h"
    
    @interface ConsoleController : NSObject
    
    /**
     *  抽象模拟器
     */
    @property (nonatomic, strong) ConsoleEmulator  *emulator;
    
    /**
     *  执行指令
     *
     *  @param command 指令
     */
    - (void)excuteCommand:(ConsoleCommand)command;
    
    @end
    //
    //  ConsoleController.h
    //  GameBoy
    //
    //  Created by YouXianMing on 15/7/26.
    //  Copyright (c) 2015年 YouXianMing. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "ConsoleEmulator.h"
    
    @interface ConsoleController : NSObject
    
    /**
     *  抽象模拟器
     */
    @property (nonatomic, strong) ConsoleEmulator  *emulator;
    
    /**
     *  执行指令
     *
     *  @param command 指令
     */
    - (void)excuteCommand:(ConsoleCommand)command;
    
    @end
    //
    //  ConsoleEmulator.h
    //  GameBoy
    //
    //  Created by YouXianMing on 15/7/26.
    //  Copyright (c) 2015年 YouXianMing. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    typedef enum : NSUInteger {
        
        kConsoleCommandUp,
        kConsoleCommandDown,
        kConsoleCommandLeft,
        kConsoleCommandRight,
        
        kConsoleCommandSelect,
        kConsoleCommandStart,
        
        kConsoleCommandAction1,
        kConsoleCommandAction2,
        
    } ConsoleCommand;
    
    @interface ConsoleEmulator : NSObject
    
    /**
     *  加载指令
     *
     *  @param command 指令
     */
    - (void)loadInstructionsForCommand:(ConsoleCommand)command;
    
    /**
     *  执行指令
     */
    - (void)excuteInstructions;
    
    @end
    //
    //  ConsoleEmulator.m
    //  GameBoy
    //
    //  Created by YouXianMing on 15/7/26.
    //  Copyright (c) 2015年 YouXianMing. All rights reserved.
    //
    
    #import "ConsoleEmulator.h"
    
    @implementation ConsoleEmulator
    
    - (void)loadInstructionsForCommand:(ConsoleCommand)command {
        
        // 由子类重载实现
    }
    
    - (void)excuteInstructions {
        
        // 由子类重载实现
    }
    
    @end

    分析

    桥接模式伦理图

    其实,就是抽象的管理类管理一个抽象的执行类,通过一个方法或者多个方法来让抽象执行类完成功能,这就是传说中的桥接模式

  • 相关阅读:
    雪妖现世:给SAP Fiori Launchpad增添雪花纷飞的效果
    ABAP开发环境语法高亮的那些事儿
    如何使用Prometheus采集SAP ABAP Netweaver的应用日志数据
    如何免费试用SAP的Fiori应用
    使用ABAP绘制可伸缩矢量图
    背景建模
    C# 属性和索引
    Equation
    Phone numbers
    BerOS file system
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4681186.html
Copyright © 2020-2023  润新知