如何通过使用接口隔离并从服务调用其方法来分离后端系统

时间:2018-06-28 06:24:31

标签: interface interface-design

因此,在我工作的公司中,我们目前有多个针对不同客户的后端系统,这些后端系统执行大致相同的功能,但有一些关键区别,并且所有这些都实现一个庞大的接口。让我们称之为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
        }

    }

0 个答案:

没有答案