swift - The Prototype Pattern

前端之家收集整理的这篇文章主要介绍了swift - The Prototype Pattern前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

import Foundation


class Sum : NSObject,NSCopying {

var resultsCache: [[Int]];

var firstValue:Int;

var secondValue:Int;

init(first:Int,second:Int) {

resultsCache = [[Int]](count: 10,repeatedValue:

[Int](count:10,repeatedValue: 0));

for i in 0..<10 {

for j in 0..<10 {

resultsCache[i][j] = i + j;

}

}

self.firstValue = first;

self.secondValue = second;

}

private init(first:Int,second:Int,cache:[[Int]]) {

self.firstValue = first;

self.secondValue = second;

resultsCache = cache;

}

var Result:Int {

get {

return firstValue < resultsCache.count

&& secondValue < resultsCache[firstValue].count

? resultsCache[firstValue][secondValue]

: firstValue + secondValue;

}

}

func copyWithZone(zone: NSZone) -> AnyObject {

return Sum(first:self.firstValue,

second: self.secondValue,

cache: self.resultsCache);

}

}


var prototype = Sum(first:0,second:9);

var calc1 = prototype.Result;

var clone = prototype.copy() as! Sum;

clone.firstValue = 3; clone.secondValue = 8;

var calc2 = clone.Result;


println("Calc1: \(calc1) Calc2: \(calc2)");

猜你在找的Swift相关文章