提高代码质量的设计模式-享元模式
程序员文章站
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