I have two classes Player and Game
public class Player {
    private List<String> cards;
    public Player(){
        cards = new ArrayList<String>();
    }
}
public class Game {
    List<Player> players;
    public Game(List<Player> players){
        this.players = new ArrayList<Player>();
        for(Player player: players){
            this.players.add(player);
        }
    }
    private void distributeCards(){
        ...
    }
    public void start(){
        distributeCards()
        ...
    }
}
the distributeCards method of Game class needs to modify the cards attribute of a Player object. If I declare a public or protected method in the Player class for that, other classes in the same package will have the privilege as well but I don't want that. In this situation what can I do?
Let me know if I'm breaking any rules of design principles or design patterns.
 
     
    