IOS 那些设计模式,持续更新中...

原创 2016年08月31日 15:53:45
引言

IOS中的设计模式,也就那么几种。对于初学者来说,确实感到有点晕乎,但是我们可以一个一个的击破。就不会感到那么难懂晕乎了。而且当我们真正熟悉并且熟练使用这些设计模式之后,你会发现我的代码变的好清晰啊,看你代码的人也会觉得,窝草!你好叼啊。好了,就不发鸡汤了。下面直接给干活。

第一种:代理模式(delegate)

代理是一种很常见的设计模式,苹果的好多框架里面都使用这种模式。尤其对于使用tableview的人来说,再熟悉不过了。就以顾客到中介买房子为例。

一、创建delegate(就是中介公司)
//.h部分
@protocol HousingIntermediaryDelegate <NSObject>
@required
// 买多大的房子
- (void)howMuchOfHouse:(NSInteger)suqre;
@optional
// 买哪里的
- (void)whatPlace:(NSString *)plcae;
@end
@interface HousingIntermediary : NSObject
@property (nonatomic,weak) id<HousingIntermediaryDelegate>delegate;


- (void)buyHouseWithSqare:(NSInteger)sqare;
- (void)buyHouseWithPlace:(NSString *)plcae;
@end

//.m实现部分
@implementation HousingIntermediary

- (void)buyHouseWithSqare:(NSInteger)sqare {
    if (self.delegate && [self.delegate respondsToSelector:@selector(howMuchOfHouse:)]) {
        [self.delegate howMuchOfHouse:sqare];
    }
}

- (void)buyHouseWithPlace:(NSString *)plcae {
    if (self.delegate && [self.delegate respondsToSelector:@selector(whatPlace:)]) {
        [self.delegate whatPlace:plcae];
    }
}
@end

二、验证代理方法
// 在viewController 类中进行调用
- (void)viewDidLoad {
    [super viewDidLoad];
    HousingIntermediary *house = [[HousingIntermediary alloc] init];
    house.delegate = self;
    [house buyHouseWithSqare:110];
    [house buyHouseWithPlace:@"南京市江宁区"];
}
// HousingIntermediaryDelegate 方法
#pragma mark -- HousingIntermediaryDelegate

- (void)howMuchOfHouse:(NSInteger)suqre {
    NSLog(@"您想买多大的房子:%ld平",suqre);
}

- (void)whatPlace:(NSString *)where {
    NSLog(@"您想买哪边的房子:%@XX小区",where);
}

// 打印的结果
2016-09-01 10:07:35.054 Block[883:261799] 您想买多大的房子:1102016-09-01 10:07:35.068 Block[883:261799] 您想买哪边的房子:南京市江宁区XX小区

持续更新中…

版权声明:本文为博主原创文章,未经博主允许不得转载。

设计模式的应用场合

接口型模式   把一个类的接口与一个客户的期望接口进行适配 ...
  • RainyLin
  • RainyLin
  • 2007年08月01日 16:52
  • 1599

Spring 框架中都用到的设计模式

Spring框架中使用到了大量的设计模式,下面列举了比较有代表性的: 代理模式—在AOP和remoting中被用的比较多。单例模式—在spring配置文件中定义的bean默认为单例模式。模板方法—用...
  • asdfsadfasdfsa
  • asdfsadfasdfsa
  • 2017年08月04日 16:53
  • 853

大话设计模式----各种模式概括总结

程杰的大话设计模式用小说的形式讲解了设计模式的奥妙,是初学者的快速入门的宝典。 通过封装、继承、多态把程序的耦合度降低。用设计模式就是合理利用这三种方法使得程序更加灵活,容易修改,并且易于复用。...
  • Watson2016
  • Watson2016
  • 2016年07月11日 20:22
  • 579

.NET开发中最常用的设计模式

整个设计模式贯穿一个原理:面对接口编程,而不是面对实现.目标原则是:降低耦合,增强灵活性.   一些基本的设计模式 Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口...
  • CsethCRM
  • CsethCRM
  • 2014年05月26日 09:06
  • 1779

项目中常用的设计模式

本文为博主原创,允许转载,但请声明原文地址:http://www.coselding.cn/blog/4/4-117.html 业务代表模式:(相同接口的不同实现的查询选择方式)   ...
  • u014394255
  • u014394255
  • 2016年05月09日 17:46
  • 1692

从代码看iOS设计模式之MVP

//: Playground - noun: a place where people can play import UIKit import XCPlayground ...
  • u010548686
  • u010548686
  • 2017年06月19日 16:42
  • 436

Spring 框架中都用到了哪些设计模式?

Spring 框架中都用到了哪些设计模式?Spring框架中使用到了大量的设计模式,下面列举了比较有代表性的:1.单例模式:spring中bean默认是单例模式 2.前端控制器:spring用前端控...
  • hujun_123456
  • hujun_123456
  • 2017年05月15日 16:05
  • 1320

常见的23种设计模式,你知道多少?

原网址:http://sentsin.com/web/131.html 这几天一直很忙,没有时间发表帖子和对编程进行一些思考,我喜欢在写一个东西的时候或者做一件事情的时候,仔细斟酌和想清楚,...
  • sonta
  • sonta
  • 2015年03月17日 22:59
  • 1654

Java常见设计模式应用场景

1、抽象工厂应用场景:封装变化点。创建一系列相互依赖的对象。在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在更多系列对象的创建工作。如何应对这各变化如何绕过常规...
  • snowflying888
  • snowflying888
  • 2009年03月08日 16:06
  • 1488

iOS中的MVVM设计模式

经过这几天的翻阅资料与代码的实现,终于对MVVM设计模式有了明确的了解,分享给大家 一、什么是MVVM设计模式 MVVM来源于微软 二、如何正确的使用MVVM设计模式     在创建目录的时候一样,每...
  • perfect_app
  • perfect_app
  • 2017年02月20日 11:58
  • 546
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS 那些设计模式,持续更新中...
举报原因:
原因补充:

(最多只允许输入30个字)