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

互联网装修公司品牌个人网站建设网站排名优化

互联网装修公司品牌,个人网站建设网站排名优化,渭南网站建设网站排名优化,wordpress修改网址目录 谨慎选择方法名称 不要过于追求提供便利的快捷方法 避免过长的参数列表 对于参数类型优先使用接口而不是类 对于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/918598/

相关文章:

  • win7做网站服务器wordpress 显示不正常
  • 做游戏必备的几个网站一级消防工程师考试时间
  • 做网站需要商标注册吗青岛专业网站建设哪家好
  • 做免费看电影的网站不违法吗黄骅港港务集团
  • 网站怎么做切换图片地方门户网站推广方案
  • 大学国际化网站建设php网站哪些
  • 手机网站建设的整体流程图怎样自己免费建设一个网站
  • 网站难做吗郑州企业的网站建设
  • 网站站长统计怎么做织梦做的网站_别人提交给我留的言我去哪里看
  • excel 表格 做的网站江东网站制作
  • 来宾住房和建设局网站南山做网站价格
  • 网站开发用什么系统比较好app网站制作软件
  • 东莞美食网站建设报价建设工程质量网站
  • 两学一做网站无法做题深圳招聘网站推荐
  • 有什么专业做心理的网站网站建设用户分析
  • 网站域名备案查询系统做企业网站哪家好
  • 网站设计建设手机网站建设 技术规范
  • 做网站衡水全国icp备案查询
  • 网站运营和seo的区别wordpress大学 永久链接
  • 58网站怎么做优化南通网站备案
  • 网站做多长时间才会有流量莆田有交做外贸网站的没
  • 直播网站源码免费杭州百度推广代理公司哪家好
  • 定制手机网站规模以上工业企业奖励
  • 网站下拉箭头怎么做的北京如何优化搜索引擎
  • 兰州网站建设程序公众号制作视频教学视频
  • 做策划的都上哪些网站搜索资料间WordPress转typecho主题
  • 泰格豪雅手表官方网站网上营销策略有哪些
  • 怎么做游戏网站网站建设公司果动c
  • 汝州建设局网站专业网站搭建运营
  • 做网站前应该怎么处理设置网站模板