文章详情页
Java编程里一般怎么管理接口的实现类?
浏览:261日期:2024-01-11 13:22:22
问题描述
比如说Color接口有三个实现类分别是:Red、Blue和Green现在我要在运行的时候才决定用某个实现类怎么管理比较优雅?别if..else..
问题解答
回答1:工厂方法模式
回答2:编程中有顺序、分支、循环三种结构。if-else作为最常用的分支结构,是不可或缺的。
关于这个问题,对于只要学习过编程的人,if-else都是最简明的编程方式。而最简单的就是最优雅的。
而if-else有时候看起来比较糟糕的地方在于,if中嵌套很多层if-else,导致逻辑判断深度过大。
所以好的解决方案是,在能够提前退出if的的时候就提前返回结果,保证if的深度最大为两层。
这里有一个类似的问题可以看下:有很多if-else,该如何优化?
设计模式可以为你带来便利,但是不要在自己的解决方案中强套设计模式,你需要为自己的代码在简单的设计与设计模式之间做出折衷。
回答3:题主的描述感觉比较符合设计模式中的策略模式。
回答4:为什么不用多态了,丢给隐式的类型转换。根据接口方法的实现来处理啊。
标签:
java
相关文章:
1. node.js通过module.exprots返回的是promise对象而非data?2. 使用 CSS3 的 Media Query 浏览器会加载其他不同分辨率的 css 文件么3. “Webdrivers”可执行文件可能具有错误的权限请参阅https://sites.google.com/a/chromium.org/chromedriver/home4. php-_server-php_self - nginx $_SERVER[’PHP_SELF’] 得到重复路径是什么原因?5. 前端 - 类到底该如何去命名 .newsList 这种的命名难道真的不是过度语义化吗?~6. html - 开发android的调取我web页面 他之前用的是收费的浏览器包 显示是全的换了免费的浏览器包后 显示就不全 是什么原因啊7. gulp-ruby-sass编译出来的文件有错8. 关于docker下的nginx压力测试9. javascript - 给js写的盒子添加css样式,css样式没起作用。10. 数据挖掘 - 如何用python实现《多社交网络的影响力最大化问题分析》中的算法?
排行榜

网公网安备