8 OOP技巧
1、 类的继承,如果父类构造函数无参数和返回类型,则子类扩展类不需要构造函数,如只继承变量类和方法
2、 父类的方法定义成虚方法,这样就可以再扩展类中重定义
3、 子程序的原型prototype是指明了参数列表和返回类型的第一行。
4、 当启动扩展类的时候,构造函数new:如果基类里有参数,那么扩展类必须有一个构造函数new(var),并且必须再构造函数第一行调用基类的构造函数super.new(input int var);
5、声明一个虚方法,这样svhi查看存储再tr中的对象类型,并且以此选取恰当的方法或访问正确的对象类型。如果对象是父类类型,那么调用父类方法
6、蓝图模式:想要构建一个事务发生器得时候,不需要知道怎样建立各种类型得事务,只需要能够根据给定得事务建立一个类似的新事务。
构建并使用一个对象:
class generator; mailbox gen2drv; Transaction tr; function new(input mailbox gen2drv); this.gen2drv = gen2drv; endfunction task run; forever begin tr=new(); assert(tr.randomize); gen2drv.put(tr); end endtask endclass
任务run创建了一个书屋并立即随机化该值。这意味着该transaction 使用默认 所有约束。若要修改约束,只能修改transaction类,不符合验证准则;并且gen只使用了transaction对象,因此无法使用扩展对象,所以只能将tr