zoukankan      html  css  js  c++  java
  • 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

    分析

    桥接模式伦理图

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

  • 相关阅读:
    nsmutableset
    数组建立 不可变数组 排序 遍历
    字符串截取 拼接 转换 长度 查询 比较
    字典排序
    数字字典结合
    可变字典
    字典
    可变字符串
    oc block排序
    oc中文首字母排序
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4681186.html
Copyright © 2011-2022 走看看