因此,在我工作的公司中,我们目前有多个针对不同客户的后端系统,这些后端系统执行大致相同的功能,但有一些关键区别,并且所有这些都实现一个庞大的接口。让我们称之为ISystem。现在,这里的每个实现实际上可能只实现一半的功能,而对于其余的功能,只会抛出未实现的异常。
因此,我打算将这个上帝界面分成几个较小的界面,但是我不确定如何做到这一点。
在我们的环境中,函数调用的基本流程如下:
servicecall => GetSystemInstance =>实例上的调用函数
现在,我的问题主要出在GetSystemInstance上。现在,它总是返回一个ISystem,您可以在其上调用所有方法。当所有系统都实现一组不同的接口时,我将如何处理?
到目前为止,最好的镜头是我在这里撒谎了,但是我觉得有更好的解决方案!
@IBOutlet var heartImage: UIButton!
var isAnimRunning = true
let pulseAnimation:CABasicAnimation = CABasicAnimation(keyPath: "transform.scale")
override func viewDidLoad() {
super.viewDidLoad()
heartBit()
}
func heartBit(){
if isAnimRunning == true{
pulseAnimation.duration = 0.8
pulseAnimation.toValue = NSNumber(value: 2.0)
pulseAnimation.repeatCount = HUGE
pulseAnimation.isCumulative = true
pulseAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
pulseAnimation.autoreverses = true
pulseAnimation.repeatCount = Float.greatestFiniteMagnitude
pulseAnimation.fromValue = NSNumber(value: 0.0)
self.view.layer.add(pulseAnimation, forKey: "transform.scale")
// self.view.layer.add(pulseAnimation, forKey: "transform.scale")
}else if isAnimRunning == false{ //*****tried all that without any luck
self.pulseAnimation.toValue = NSNumber(value: 1.0)
// self.view.layer.removeAnimation(forKey: "transform.scale")
//self.view.layer.removeAllAnimations()
// view.layer.removeAllAnimations()
//self.view.layer.removeAnimation(forKey: "transform.scale")
// self.view.layer.removeAllAnimations()
}
}
@IBAction func heartBtn(_ sender: Any) {
isAnimRunning = !isAnimRunning
}
}