当前位置: 首页 > news >正文

网站排名优化的技巧南头专业企业网站建设公司

网站排名优化的技巧,南头专业企业网站建设公司,广东网站建设哪里有,旅游在线网站开发介绍 装饰器模式 是在不修改对象内部结构的情况下#xff0c;动态地给对象添加功能的一种设计模式。在软件开发中#xff0c;有时候我们需要为已有对象添加一些额外的行为#xff0c;但不希望修改该对象的代码#xff0c;装饰器模式可以很好的满足这一需求。 在TypeScrip…介绍 装饰器模式 是在不修改对象内部结构的情况下动态地给对象添加功能的一种设计模式。在软件开发中有时候我们需要为已有对象添加一些额外的行为但不希望修改该对象的代码装饰器模式可以很好的满足这一需求。 在TypeScript中装饰器是一个函数它可以用来注入或修改类、方法、属性或参数的行为。装饰器在编译阶段被执行它会接收被装饰的目标作为参数并且可以返回一个新的构造函数或方法。 装饰器的使用需要在 tsconfig.json 或者 tsconfig.app.json  中启用如下配置 {compilerOptions: {experimentalDecorators: true,emitDecoratorMetadata: true} } class Circle {draw() {console.log(画圆);} }class Decorator {private circle: Circle;constructor(circle: Circle) {this.circle circle;}draw() {this.circle.draw(); // 原有功能this.setBorder(); // 装饰}private setBorder() {console.log(设置边框颜色);} }const circle new Circle(); const decorator new Decorator(circle) decorator.draw() 符合开放封闭原则 装饰器和目标分离解耦装饰器可自由扩展目标可自由扩展 场景  1类装饰器 类装饰器用于装饰整个类通常用来扩展或修改类的功能。 function LogClass(target: Function) {console.log(Class decorated: ${target.name}); }LogClass class ExampleClass {constructor() {console.log(ExampleClass instance created);} }const ec new ExampleClass() // Class decorated: ExampleClass // ExampleClass instance created 在这个例子中LogClass 装饰器会在 ExampleClass 类定义时打印信息。 2方法装饰器 方法装饰器用于装饰类中的方法它可以对方法进行一些增强操作例如添加日志、性能监控等。 function LogMethod(target: any, propertyName: string, descriptor: PropertyDescriptor) {const originalMethod descriptor.value;descriptor.value function (...args: any[]) {console.log(Method ${propertyName} called with arguments: ${args});return originalMethod.apply(this, args);};return descriptor; }class Calculator {LogMethodadd(a: number, b: number): number {return a b;} }const calc new Calculator(); calc.add(2, 3); // 输出: Method add called with arguments: 2,3在这个例子中LogMethod 会拦截 add 方法的调用并记录传递的参数。 3属性装饰器 属性装饰器用于装饰类中的属性它可以用来改变属性的元数据或做一些额外的处理。 function Readonly(target: any, propertyName: string) {Object.defineProperty(target, propertyName, {writable: false}); }class Person {Readonlyname: string John; }const person new Person(); person.name Jane; // 这里会报错因为 name 是只读的在这个例子中Readonly 装饰器将 name 属性设置为不可修改。 4参数装饰器 参数装饰器用于装饰方法的参数它通常用于对参数进行校验或元数据的处理。 function LogParameter(target: any, methodName: string, parameterIndex: number) {console.log(Parameter in ${methodName} at index ${parameterIndex} is decorated); }class User {greet(LogParameter message: string) {console.log(message);} }const user new User(); user.greet(Hello!); // 输出: Parameter in greet at index 0 is decorated在这个例子中LogParameter 装饰器记录了 greet 方法的参数装饰情况。 AOP 面向切面编程AOPAspect Oriented Program是一种编程范式通过将横切关注点例如日志、事务管理等从主要逻辑中分离出来提高了代码的模块化和可重用性。在 TypeScript 中AOP 可以与装饰器模式结合使用以在代码的不同部分方法、函数等应用相同的横切关注点。 一个常见的 AOP 应用场景是性能监控例如计算方法执行时间的装饰器 function measure(target: any, key: string, descriptor: PropertyDescriptor) {const originalMethod descriptor.value;descriptor.value function(...args: any[]) {const startTime performance.now();const result originalMethod.apply(this, args);const endTime performance.now();console.log(Method ${key} took ${(endTime - startTime).toFixed(2)} ms);return result;};return descriptor; }class Example {measureprocess(data: string) {// 模拟一个耗时操作let result ;for (let i 0; i 1000000; i) {result data;}return result;} }const example new Example(); const result example.process(test); // 输出方法执行时间Method process took 32.30 ms在这个示例中measure 装饰器被应用于 process 方法用来测量方法执行时间并输出日志。
http://www.w-s-a.com/news/196479/

相关文章:

  • 北京网站建设制作颍州网站建设
  • 网站制作报价表做网站上海公司
  • 简洁大气蓝色文章资讯网站百度搜索广告推广
  • 河南建设工程协会网站网站收银系统建设
  • 网站制作 服务企业网站案例展示
  • 咸宁网站建设wordpress手动降级
  • 昆明做网站建设怎么样做网站赚钱全攻略
  • 企业网站建设实战教程微信如何注册小程序
  • 做一件代发网站百度seo服务
  • 小说网站开发 公司可以做行程的网站
  • 古交市网站建设公司apk连接wordpress
  • 网页 网 址网站区别wordpress菜单居右
  • 网站建设搭建运营一台云服务器做多个网站
  • 用php做网站用什么框架推广网站推荐
  • 如何用二级域名做网站多用户网上商城
  • 河南省建设科技网站浅谈电子商务网站建设与规划
  • 网站空间需要续费青海网站建设推广
  • 网站开发本地环境企业网站建设排名口碑
  • 做新闻的网站怎样赚钱个人网站课程设计报告
  • 网站设计样例那个网站做图片好看
  • 小型公司网站建设深圳网络营销策划有限公司
  • 国内优秀企业网站做视频网站用什么系统
  • 网站建设入门pdfwordpress网站标题
  • 专业网站的定义网站运营的概念
  • 外贸服装网站建设网页美工设计说明书
  • 郑州专业做网站公百度翻译api wordpress
  • 做网站哪里找大学的一级或二级域名
  • 没有静态ip可以做网站服务器上饶网站制作需要多少钱
  • 网站建设wangzhii做国外网站做什么内容
  • 网站建设 搞笑笑话经典 wordpress主题下载