구글링을 통해 onBindViewHolder에서 뷰의 리스너를 생성하는 방법이 좋지 않다는 것을 알게 되었습니다.
하지만 제가 만약 아래코드와 같이 repoList데이터를 이용하여 view마다 다르게 리스너를 설정해주어야 한다면 이때도 onBindViewHolder메서드가 아닌 ViewHolder클래스에서 해주는게 더 나은 방법일까요? 
override fun onBindViewHolder(holder: FriendRepoListHolder, position: Int) {
    holder.apply {
        repoList[position].apply {
            binding.friendActivityRepositoryTextview.text = "${this.owner}/${this.name}"
            binding.friendActivityRepositoryLinearView.setOnClickListener {
                val intent = Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("https://github.com/${this.owner}/${this.name}")
                )
                itemView.context.startActivity(intent)
            }
        }
    }
}위의 코드를 아래와 같이 바꾸어 주었을 때 이점이 무엇인지 정확히 이해하지 못하겠습니다.
inner class FriendRepoListHolder(val binding: RecyclerViewItemFriendRepoListBinding) :
    RecyclerView.ViewHolder(binding.root) {
    init {
        binding.friendActivityRepositoryLinearView.setOnClickListener {
            val intent = Intent(
                Intent.ACTION_VIEW,
                Uri.parse("https://github.com/${repoList[bindingAdapterPosition].owner}/${repoList[bindingAdapterPosition].name}")
            )
            itemView.context.startActivity(intent)
        }
    }
    fun bind(item: Repositories) {
        binding.friendActivityRepositoryTextview.text = "${item.owner}/${item.name}"
    }
}
override fun onBindViewHolder(holder: FriendRepoListHolder, position: Int) {
    holder.bind(repoList[position])
}