欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

提高代码质量的设计模式-享元模式

程序员文章站 2022-04-14 14:06:25
好的项目的代码具有很高的复用性,高复用低耦合是好代码的体现。什么样的代码具有高复用?高复用的代码具有以下三个特点:1.对象可以使用不用修改。2重复代码少。3模块功能单一。下面结合具体功能代码总结js中提高代码质量的设计模式——享元模式。享元模式目的:减少对象或者代码数量。设计方法:观察代码*有和私有的部分,提取共有部分和私有部分,私有部分作为外部数据传递,从而减少开发代码中对象的数量。应用场景:当代码中创建了大量类似的对象和类似的代码块。结合自己开发过程中的代码来谈谈感悟。比如要项目开发文件上传...

好的项目的代码具有很高的复用性,高复用低耦合是好代码的体现。什么样的代码具有高复用?高复用的代码具有以下三个特点:1.对象可以使用不用修改。2重复代码少。3模块功能单一。下面结合具体功能代码总结js中提高代码质量的设计模式——享元模式。

享元模式

目的:减少对象或者代码数量。
设计方法:观察代码*有和私有的部分,提取共有部分和私有部分,私有部分作为外部数据传递,从而减少开发代码中对象的数量。
应用场景:当代码中创建了大量类似的对象和类似的代码块。
结合自己开发过程中的代码来谈谈感悟。比如要项目开发文件上传功能,这个地方创建类的时候可以利用享元模式的设计思想,从而提高代码的质量。

	//文件上传
function uploader(fileType,file){
	 this.fileType=fileType;
    this.file=file;
}
uploader.prototype.init=function(){
  //初始化文件上传的html
}
uploader.prototype.delete=function(){
  //删除掉该html
}
uploader.prototype.uploading=function(){
  //上传
}
var fileob1,fileob2,fileob3,fileob4
var data=[
  {
  	type:'img',
  	file:fileob1
  },
  {
  	type:'txt',
  	file:fileob2
  },
  {
  	type:'img',
  	file:fileob3
  },
  {
  	type:'word',
  	file:fileob4
  },      
]
for(var i=0;i<data.length;i++){
	new uploader(data[i].type,data[i].file);
};

上述代码在for循环中创建多个类,从代码功能上看确实可以实现业务需求,实现逻辑功能。但这种代码的质量并不高,程序员应该精益求精,追求代码质量。上述代码也是我在中踩过的坑,这里如若用享元设计模式改造,代码会得到提升,使创建多个uploader类变成创建一个uploader类。
使用享元模式

	//fileType,file
function uploader(){

}
uploader.prototype.init=function(){
  //初始化文件上传的html
}
uploader.prototype.delete=function(){
  //删除掉该html
}
uploader.prototype.uploading=function(filetype,file){
}
var uploader=new uploader();
for(var i=0;i<data.length;i++){
	uploader.uploading(data[i].type,data[i].file);
}

享元模式的目的就是减少类/代码的数量,将文件上传的功能放在uploading 方法中,提取私有的数据(文件类型、文件名),创建一个类循环调用uploading方法,也能实现功能。使用享元模式和没有使用享元模式,从代码的角度确实没多大的改变,但这种小的改变能减少类的数量从而提高代码质量。好的习惯从小的地方开始,点点滴滴的优化也能让你的代码与众不同。

本文地址:https://blog.csdn.net/weaJung/article/details/107325001