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

昆明网站推广8888168网站内部优化

昆明网站推广8888168,网站内部优化,宁波好的seo外包公司,代做广联达 的网站目录 谨慎选择方法名称 不要过于追求提供便利的快捷方法 避免过长的参数列表 对于参数类型优先使用接口而不是类 对于boolean参数,要优先使用两个元素的枚举类型 本文接续前一篇文章聚焦Java方法签名的设计,方法签名包括了方法的输入和输出参数以及…

目录

谨慎选择方法名称

不要过于追求提供便利的快捷方法

避免过长的参数列表

对于参数类型优先使用接口而不是类

对于boolean参数,要优先使用两个元素的枚举类型


本文接续前一篇文章聚焦Java方法签名的设计,方法签名包括了方法的输入和输出参数以及方法名称,在第51条作者总结了5条设计的经验。

谨慎选择方法名称

方法名称的设置有几个原则:一是易于理解,二是要符合大众的认可,比如get和set,比如驼峰命名法等等。这些细节可以参考Java类库的API。

不要过于追求提供便利的快捷方法

对于类或者接口的每一个动作都要提供功能齐全的方法。只有当某一项操作被经常使用时才考虑把它独立出来提供一个快捷的使用方式,但是这个方式如果只是其他方法经常使用,没有对外使用的场景就请以私有方法的形式定义。总之尽可能将面向客户端的方法设计的简单,易于理解。

避免过长的参数列表

对于客户端来说,超过4个的参数列表就不太容易使用了,尤其是有相同类型的参数,调用者很难记住参数的调用顺序,而且一旦有了错误相同类型的参数是不会直接返回异常的,所以会有非常大的风险。

文中列举了三种可以缩短过长参数列表的方法:

  • 把一个方法分解为多个方法,每一个方法取一部分的参数作为输入。
  • 创建辅助类,用来保存参数的分组。通过辅助类来分担一部分的参数输入
public class OrderManager {public static void main(String[] args) {// 创建一个 CustomerInfo 对象CustomerInfo customerInfo = new CustomerInfo("Alice Smith", "123 Main St", "New York", "NY", "10001");// 创建订单详情String productName = "Widget";double price = 99.99;Date orderDate = new Date();// 处理订单processOrder(customerInfo, productName, price, orderDate);}/*** Processes an order with customer information and order details.* @param customerInfo the customer information* @param productName the name of the product* @param price the price of the product* @param orderDate the date of the order*/public static void processOrder(CustomerInfo customerInfo, String productName, double price, Date orderDate) {// 进行处理订单的逻辑System.out.println("Processing order for " + customerInfo.getName());System.out.println("Product: " + productName);System.out.println("Price: $" + price);System.out.println("Order Date: " + orderDate);}
}class CustomerInfo {private String name;private String address;private String city;private String state;private String zipCode;public CustomerInfo(String name, String address, String city, String state, String zipCode) {this.name = name;this.address = address;this.city = city;this.state = state;this.zipCode = zipCode;}public String getName() {return name;}public String getAddress() {return address;}public String getCity() {return city;}public String getState() {return state;}public String getZipCode() {return zipCode;}
}

这里通过CustomerInfo作为辅助类分担了processOrder的一部分参数。

  • 采用Builder模式,见第2条

对于参数类型优先使用接口而不是类

用类作为参数会限制客户端对于参数类型的选择范围。比如用Map接口作为参数类型就可以允许客户端输入HashMap, TreeMap等实现类。

对于boolean参数,要优先使用两个元素的枚举类型

对于输入为boolean值的方法,输入true或者false不易于阅读和理解,而且一旦未来方法要加入第三种选择,则方法没有任何可扩展性。所以可以通过枚举类型来保留这部分可扩展性,同时还更易于理解:

public enum TemperatureScale{FAHRENHEIT, CELSIUS}Thermometer.newInstance(TemperatureScale.CELSIUM)
//而不是Thermometer.newInstance(true)

http://www.yayakq.cn/news/688437/

相关文章:

  • 外围网站代理怎么做企查查网站
  • 免费流程图网站wordpress 获取最新文章
  • 网站推广策划报告做网站要多少钱汉狮
  • 网站开发校园经历范文用淘宝域名做网站什么效果
  • 福建建设培训中心网站wordpress 去掉 顶部
  • html5 手机网站 模板做软件页面设计的软件
  • 跨平台 移动网站开发精美wordpress主题
  • 新手如何做英文网站赚美元江西网络推广
  • 网站服务器租用 价格工厂网站怎么做
  • 如何维护网站的运营导购网站制作
  • 适合新手做的网站静态企业网站管理系统多少钱一年
  • html5网站欣赏公司logo和商标一样吗
  • 长寿网站建设后端开发是干什么的
  • 哪种浏览器什么网站都可以进为什么我的网站做不起来
  • 手机网站模板案例域度设计网站
  • 上海模板网站制作多少钱每天能赚30 50元的
  • 房屋出租网站模板闲鱼钓鱼网站怎么制作
  • 竞品网站分析龙华营销型网站制作
  • 网页设计与网站建设完全实战手册没有做icp备案的网站
  • 重庆seo教程博客seo技术入口
  • 网站建设程序做哪些上海住房和城乡建设局网站
  • 做调查问卷换赏金的网站wordpress怎么做博客
  • 网站制作设计发展前景小程序商城哪家好
  • 乐清网站开发公司微企申请网站
  • 闽清网站建设网站开发维护合同模板电子版
  • 什么网站可以自己做房子设计专做定制旅游网站有哪些
  • 户网站建设的不全.广州教育网站建设
  • 室内平面图在线制作网站百家号关键词排名优化
  • 龙华建设发展有限公司网站做网站怎么加背景图片
  • 网页设计欣赏作业秦皇岛网络优化招聘