if多了怎么解决,模式来一个

手机游戏开发者 2024-9-17 08:48:35 30 0 来自 中国
近几天,构造走查产物代码,由于毕业1-3年的同事居多,发现一个共性题目,方法里面的判定太多,代码可读性不强,维护性差
针对共性题目,先解读了这种写法的利弊,然后讲授了下常见的计划模式好比战略、工厂。
这边分享下可以实验的做法,可以解决代码可读性,维护性,扩展性,单一职责方面的困扰
假设有一个场景,文件上传到服务器,上传方式包含ftp,sftp,http等
通例写法,写个类,写个方法把各种上传的代码捆在一起,好点的大概还会分几个子方法。如下图所示,




class UpLoadUtil{
        public void upload(){
            if sftp
                 uploadBySftp
            if ftp
               uploadByFtp
           if http
              uploadByHttp
      }
}
换个希奇的写法,抽象一个接口类,然后界说对应的实现方式,然后编写个工厂,战略选择对应的实现方式,如图


Interface IFileUpload{
      upload();
}
Class HttpFileUploadImpl implement IFileUpload{
   upload(){
    }
}
Class StpFileUploadImpl implement IFileUpload{
   upload(){
    }
}
class FileUpLoadFactory{
      static IFileUploadupload(uploadMode){
             Class<?> clazz = Class.forName("******"+uploadMode+"FileUploadImpl");
           return (IFileUpload) clazz.newInstance()
     }   
}
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 22:34, Processed in 0.180761 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表