一、代理的意义

        通过切面编程,减少代码冗余,高效实现控制方法和业务实现的绑定

二、代理的实现

        对目标的前置的后置控制形成切面编程,通过切面类实现前置的控制,和后续的业务实现以及后续的服务

三、代码实现

//代理
//想要实现的业务的接口
public interface Project{

    public func project():Unit

}
//真实类
public class User <:Project{

    public func project():Unit{
        println("实现的某项业务")
    }

}
//代理实现类
public  class  ProxyAny <:Project{

    var a1 : Project
    ProxyAny(a1 : Project){
        this.a1 = a1
    }
    public func project():Unit{
        this.before()  // 方法的切面  前置切面
          this.a1.project()  //业务的实现 
          this.after()  // 后置切面
    }
    public func before(){
        println("前置切面")
    }
     public func after(){
        println("后置切面")
    }

}

public  func   exec()
{
     // 代理类代理真实类完成初始化
     var  proxy : ProxyAny  = ProxyAny(User())//动态绑定想要实现的业务

     //代理类完成业务实现
     proxy.project()
}

运行结果

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐