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

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

在以下情况下可以考虑使用外观模式:
(1)设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。
(2) 开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。
(3) 维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。

要点:
(1)实现了子系统与客户端之间的松耦合关系。
(2)客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。

简单代码示例:
新建一个Group包含`Shape.h / Shape.m / RectShape.h / RectShape.m / CircleShape.h / CircleShape.m

Shape.h

#import <Foundation/Foundation.h>

@interface Shape : NSObject

- (void)draw;

@end

RectShape.h

#import "Shape.h"

@interface RectShape : Shape

- (void)draw;

@end

CircleShape.h

#import "Shape.h"

@interface RectShape : Shape

- (void)draw;

@end

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

#import <Foundation/Foundation.h>
#import "RectShape.h"
#import "CircleShape.h"

@interface DrawShape : NSObject

+ (void)drawRectShape;
+ (void)drawCircleShape;

@end

Controller中使用

#import "ViewController.h"
#import "DrawShape.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //调用画画接口
    [DrawShape drawRectShape];
    [DrawShape drawCircleShape];
    
}


@end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,807评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,041评论 19 139
  • 1 场景问题# 1.1 生活中的示例## 外观模式在现实生活中的示例很多,比如:组装电脑,通常会有两种方案。 一个...
    七寸知架构阅读 6,326评论 7 57
  • 遵守承诺。 言必信,行必果。做人做事尽量要遵守承诺。当然,也要看实际情况而言。
    逸凡小仙阅读 127评论 0 0
  • 狗狗们听说“鸡犬不宁”这个成语,气得嗷嗷直叫。这天,狗狗们聚在一起开会,哈巴狗说:“人类也真是的,我们狗一直乖乖的...
    小泽Duke阅读 415评论 1 1