-
-
Save jasongorman/0e0940710527d6ee1c0d857613764de1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public interface Loanable { | |
void borrowCopy(Member member); | |
void returnCopy(Member member); | |
} | |
public class Movie implements Loanable { | |
private final String title; | |
private int availableCopies = 1; | |
private List<Member> onLoanTo = new ArrayList<>(); | |
public Movie(String title) { | |
this.title = title; | |
} | |
@Override | |
public void borrowCopy(Member member) { | |
availableCopies -= 1; | |
onLoanTo.add(member); | |
} | |
@Override | |
public void returnCopy(Member member) { | |
availableCopies++; | |
onLoanTo.remove(member); | |
} | |
public String getTitle() { | |
return title; | |
} | |
public int getAvailableCopies() { | |
return availableCopies; | |
} | |
public Boolean isOnLoanTo(Member member) { | |
return onLoanTo.contains(member); | |
} | |
} | |
public class LoansView { | |
private Member member; | |
private Loanable selectedMovie; | |
public LoansView(Member member, Loanable selectedMovie) { | |
this.member = member; | |
this.selectedMovie = selectedMovie; | |
} | |
public void borrowMovie(){ | |
selectedMovie.borrowCopy(member); | |
} | |
public void returnMovie(){ | |
selectedMovie.returnCopy(member); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment