仓颉中的代理模式
·
一、代理的意义
通过切面编程,减少代码冗余,高效实现控制方法和业务实现的绑定
二、代理的实现
对目标的前置的后置控制形成切面编程,通过切面类实现前置的控制,和后续的业务实现以及后续的服务
三、代码实现
//代理
//想要实现的业务的接口
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()
}
运行结果

更多推荐



所有评论(0)