iOS設計模式 - 產生器

來源:互聯網
上載者:User

標籤:

iOS設計模式 - 產生器

 

原理圖

 

說明

1. 將構建複雜物件的過程拆分成一個一個的模組,通過統一的指導者來指導對象的構建過程稱之為產生器模式

2. 產生器模式適合用於構建組合的對象

 

源碼

https://github.com/YouXianMing/BuilderPattern

////  CarBuilder.h//  BuilderPattern////  Created by YouXianMing on 15/9/14.//  Copyright (c) 2015年 YouXianMing. All rights reserved.//#import <Foundation/Foundation.h>@interface CarBuilder : NSObject {        NSMutableDictionary *_carInfo;}/** *  汽車資訊 */@property (nonatomic, strong, readonly) NSDictionary *car;/** *  建造輪子 */- (void)buildWheel;/** *  建造引擎 */- (void)buildEngine;/** *  構造外殼 */- (void)buildShell;@end
////  CarBuilder.m//  BuilderPattern////  Created by YouXianMing on 15/9/14.//  Copyright (c) 2015年 YouXianMing. All rights reserved.//#import "CarBuilder.h"@interface CarBuilder ()@end@implementation CarBuilder- (instancetype)init {        self = [super init];    if (self) {                _carInfo = [[NSMutableDictionary alloc] init];    }    return self;}- (void)buildWheel {    _carInfo[@"wheel"] = @"normal_wheel";}- (void)buildEngine {    _carInfo[@"engine"] = @"normal_engine";}- (void)buildShell {    _carInfo[@"shell"] = @"normal_shell";}@synthesize car = _car;- (NSDictionary *)car {    return [[NSDictionary alloc] initWithDictionary:_carInfo];}@end
////  BMWBuilder.h//  BuilderPattern////  Created by YouXianMing on 15/9/14.//  Copyright (c) 2015年 YouXianMing. All rights reserved.//#import "CarBuilder.h"@interface BMWBuilder : CarBuilder@end
////  BMWBuilder.m//  BuilderPattern////  Created by YouXianMing on 15/9/14.//  Copyright (c) 2015年 YouXianMing. All rights reserved.//#import "BMWBuilder.h"@implementation BMWBuilder- (void)buildWheel {        _carInfo[@"wheel"] = @"BMO_wheel";}- (void)buildEngine {        _carInfo[@"engine"] = @"BMO_engine";}- (void)buildShell {        _carInfo[@"shell"] = @"BMO_shell";}@end
////  ViewController.m//  BuilderPattern////  Created by YouXianMing on 15/9/14.//  Copyright (c) 2015年 YouXianMing. All rights reserved.//#import "ViewController.h"#import "CarBuilder.h"#import "BMWBuilder.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {        [super viewDidLoad];        CarBuilder *builder = [[CarBuilder alloc] init];    [builder buildEngine];    [builder buildShell];    [builder buildWheel];    NSLog(@"%@", builder.car);        CarBuilder *bmwBuilder = [[BMWBuilder alloc] init];    [bmwBuilder buildEngine];    [bmwBuilder buildShell];    [bmwBuilder buildWheel];    NSLog(@"%@", bmwBuilder.car);}@end

 

分析

關係倫理圖

 

 

iOS設計模式 - 產生器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.