小编oza*_*n k的帖子

- UIWindow setRootViewController:在4.0之前的等价物

我用4.0 sdk开始iphone开发.我想让我的应用程序与3.2兼容.我意识到 - [UIWindow setRootViewController:]被添加到版本4.0中的sdk.所以我应该在4.0之前的版本中使用什么呢?换句话说,除了分配窗口的主要子视图外,rootViewController属性本质上做什么?如果我扩展UIWindow并重新定义下面的方法,将来会出现问题吗?


- (void) setRootViewController:(UIViewController *)controller
{
    if (systemVersion < 4.0)
    {
        while(self.subviews.count > 0)
             [[self.subviews objectAtIndex:0] removeFromSuperview];
        [self addSubview:controller.view];
    }
    else [super setRootViewController:controller];
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c

11
推荐指数
1
解决办法
4961
查看次数

构造函数的设计模式

我受到设计问题的挑战,我将在下面介绍.

假设一个类(称为A)具有带有一堆参数的构造函数.由于在每个实例化中编写所有这些参数都很累,所以我编写了另一个类,称之为StyleSheetA,它封装了所有这些参数,并且是A构造函数的唯一参数.这样,​​我可以准备一些默认值StyleSheetA模板稍后将使用,如果需要,我可以修改它们.

在这一点上,我需要扩展A.假设B扩展A. B将有自己的样式表,即StyleSheetB.我认为StyleSheetB扩展StyleSheetA是合适的,所以使用一个样式表参数,B的构造函数也可以构造它的超类A.但是我担心这个设计可能有缺陷的可能性.例如,如果我决定为样式表添加getter/setter,该怎么办?是否有一种新颖的方式来处理所有这些情况?我错了吗?对于那些困惑的人,我在这里附上一些代码:


    class A
    {
        StyleSheetA ss;

        A(StyleSheetA ss)
        {
            this.ss = ss;
            // Do some stuff with ingredients of styleSheet
        }
    }
    class StyleSheetA
    {
        int n1;
        int n2;
        // :
        // :
        int n100;
    }

    class B extends A
    {
        B(StyleSheetB ss)
        {
            super(ss);
            // Do some stuff with ingredients of styleSheet
        }
    }
    class StyleSheetB extends StyleSheetA
    {
        int n101;
        int n102;
        // :
        // :
        int n200;
    }
Run Code Online (Sandbox Code Playgroud)

感谢您的任何帮助或建议,也欢迎任何评论家.

编辑:我正在使用java开发,因此没有泛型支持.

java constructor design-patterns

5
推荐指数
2
解决办法
1042
查看次数

标签 统计

constructor ×1

design-patterns ×1

iphone ×1

java ×1

objective-c ×1