美文网首页
iOS 类簇的简单使用

iOS 类簇的简单使用

作者: ChanYuCung | 来源:发表于2018-08-29 16:47 被阅读0次
        在开发过程中,我们难免会遇到一些功能相近的需求,如果为此创建不同的类的话,我们工程里面就会有很多很多不必要的类,自己调用的时候也难免会分不清,这个时候我们可以尝试使用类簇的设计模式,来构建自己所需要类。
        我们可以参考苹果的NSNumber类, [NSNumber numberWithInt:1]等等。这些方法都是用一些外部接口,在类内部的方法实施具体的实现,创建出不同的子类。这样的好处就是只需要调用一个类的响应方法就可以了。
    

    以动物为例子

    import UIKit
    
    enum AnimalName : Int {
        case Dog = 0
        case Cat
    }
    
    class Animal: NSObject {
        public class func animalWithName(_ animalName : AnimalName) -> Animal {
            if animalName == AnimalName.Dog {
                return Dog()
            }
            return Cat()
        }
        
        func run () {
            print("animalRun")
        }
    }
    
    
    class Dog : Animal {
        override func run() {
            print("dogRun")
        }
    }
    
    class Cat : Animal {
        override func run() {
            print("catRun")
        }
    }
    

    接下来再调用一下看看效果

        func testCreatObjectWithClassCluster () {
            let dog = Animal.animalWithName(.Dog)
            let cat = Animal.animalWithName(.Cat)
            
            dog.run()
            cat.run()
        }
    
    dogRun
    catRun
    

    相关文章

      网友评论

          本文标题:iOS 类簇的简单使用

          本文链接:https://www.haomeiwen.com/subject/bodkwftx.html