• Objective-C 外观模式--简单介绍和使用


    外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。

    在以下情况下可以考虑使用外观模式:
    (1)设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。
    (2) 开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。
    (3) 维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。
     
    有点:
    (1)实现了子系统与客户端之间的松耦合关系。
    (2)客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。
     
    简单代码示例:
    新建一个Group包含`Shape.h / Shape.m / RectShape.h / RectShape.m / CircleShape.h / CircleShape.m
     
    Shape.h
    1 #import <Foundation/Foundation.h>
    2 
    3 @interface Shape : NSObject
    4 
    5 - (void)draw;
    6 
    7 @end

    RectShape.h

    1 #import "Shape.h"
    2 
    3 @interface RectShape : Shape
    4 
    5 - (void)draw;
    6 
    7 @end

    CircleShape.h

    1 #import "Shape.h"
    2 
    3 @interface RectShape : Shape
    4 
    5 - (void)draw;
    6 
    7 @end

    再创建一个DrawShape.h / DrawShape.m作为Controller使用

     1 #import <Foundation/Foundation.h>
     2 #import "RectShape.h"
     3 #import "CircleShape.h"
     4 
     5 @interface DrawShape : NSObject
     6 
     7 + (void)drawRectShape;
     8 + (void)drawCircleShape;
     9 
    10 @end

    Controller中使用

     1 #import "ViewController.h"
     2 #import "DrawShape.h"
     3 
     4 @interface ViewController ()
     5 
     6 @end
     7 
     8 @implementation ViewController
     9 
    10 - (void)viewDidLoad {
    11     [super viewDidLoad];
    12     
    13     //调用画画接口
    14     [DrawShape drawRectShape];
    15     [DrawShape drawCircleShape];
    16     
    17 }
    18 
    19 
    20 @end
     
  • 相关阅读:
    mysql如何查询最新插入的数据
    nodejs express开发
    在线考试实现倒计时的代码
    centos的vsftp修改上传下载速度
    centos vsftpd
    ul和li里面的list-style
    算法竞赛入门经典 暴力求解法 7.1简单枚举 最大乘积
    算法竞赛入门经典 暴力求解法 7.1简单枚举 最大乘积
    算法竞赛入门经典 暴力求解法 7.1简单枚举 除法
    算法竞赛入门经典 暴力求解法 7.1简单枚举 除法
  • 原文地址:https://www.cnblogs.com/zhouxihi/p/6034541.html
Copyright © 2020-2023  润新知