iOS 設計模式之抽象工廠,ios設計模式工廠

來源:互聯網
上載者:User

iOS 設計模式之抽象工廠,ios設計模式工廠

設計模式是程式提升的必備知識,這裡說下iOS如何?抽象工廠設計模式。本文是看過oc編程之道這本的抽象工廠這章後寫出的,如果不明白原理可以看看那本書。

TestView.h首先建立一個視圖

////  TestView.h//  AbstractFactory////  Created by 杜甲 on 11/10/14.//  Copyright (c) 2014 杜甲. All rights reserved.//#import <UIKit/UIKit.h>@interface TestView : UIView@end

TestView.m

////  TestView.m//  AbstractFactory////  Created by 杜甲 on 11/10/14.//  Copyright (c) 2014 杜甲. All rights reserved.//#import "TestView.h"@implementation TestView- (id)initWithFrame:(CGRect)frame{    if (self = [super initWithFrame:frame]) {        self.backgroundColor = [UIColor redColor];            }    return self;}@end

接下來建立兩個類TestFactory、TestBrandingFactory 其中TestFactory繼承TestBrandingFactory。具體實現如下:

TestBrandingFactory.h

////  TestBrandingFactory.h//  AbstractFactory////  Created by 杜甲 on 11/10/14.//  Copyright (c) 2014 杜甲. All rights reserved.//#import <Foundation/Foundation.h>#import <UIKit/UIKit.h>@interface TestBrandingFactory : NSObject+ (TestBrandingFactory *)factory;- (UIView *)createTestView:(CGRect)frame;@end

TestBrandingFactory.m

////  TestBrandingFactory.m//  AbstractFactory////  Created by 杜甲 on 11/10/14.//  Copyright (c) 2014 杜甲. All rights reserved.//#import "TestBrandingFactory.h"#import "TestFactory.h"@implementation TestBrandingFactory+ (TestBrandingFactory *) factory{    return [[TestFactory alloc] init];}- (UIView *) createTestView:(CGRect)frame{    return nil;}@end

TestFactory.h

////  TestFactory.h//  AbstractFactory////  Created by 杜甲 on 11/10/14.//  Copyright (c) 2014 杜甲. All rights reserved.//#import "TestBrandingFactory.h"@interface TestFactory : TestBrandingFactory@end

TestFactory.m

////  TestFactory.m//  AbstractFactory////  Created by 杜甲 on 11/10/14.//  Copyright (c) 2014 杜甲. All rights reserved.//#import "TestFactory.h"#import "TestView.h"@implementation TestFactory- (UIView *)createTestView:(CGRect)frame{    return [[TestView alloc] initWithFrame:frame];}@end

最後貼出實現

 TestBrandingFactory * tmp = [TestBrandingFactory factory];    UIView *v = [tmp createTestView:CGRectMake(50, 110, 100, 50)];    [self.view addSubview:v];



















相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.