【发布时间】:2018-07-07 04:46:27
【问题描述】:
R.layout.main.. 就像一个嵌套类,虽然我知道这会创建一个对象并使用它来引用类对象 obj.me() 和 obj.var 也见过这样的,但不知道是什么意思 方法1()。方法2();是不是像方法调用方法一样
【问题讨论】:
R.layout.main.. 就像一个嵌套类,虽然我知道这会创建一个对象并使用它来引用类对象 obj.me() 和 obj.var 也见过这样的,但不知道是什么意思 方法1()。方法2();是不是像方法调用方法一样
【问题讨论】:
我相信您所引用的要么是所谓的 Fluent Interface,要么是更普遍的 Builder Pattern。你会看到在构造对象的过程中使用了这样的语法:
// Taken from DynamoDB Mapper Documentation
DynamoDBQueryExpression<PostedByMessage> queryExpression = new DynamoDBQueryExpression<PostedByMessage>()
.withIndexName("PostedBy-Message-Index")
.withConsistentRead(false)
.withKeyConditionExpression("PostedBy = :v1 and begins_with(Message, :v2)")
.withExpressionAttributeValues(eav);
Martin Fowler 有一篇很棒的文章描述了如何构建一个流畅的界面,以及使用它的优缺点:https://www.martinfowler.com/bliki/FluentInterface.html
这与用于类构造的“构建器模式”的概念密切相关。一般的想法是,不是使用构造函数,然后为每个字段使用设置器;相反,您允许通过中间“构建器”类的方法“设置”构造时不需要的任何字段。
Joshua Bloch 在他的“Effective Java”一书中对此进行了介绍:http://www.informit.com/articles/article.aspx?p=1216151&seqNum=2
【讨论】: