# Prototype Patterns
## Ball.java
改为 implements Cloneable ,
并增加 一个 public方法 clone() 用来clone itself.
## Ballpit.java
增加 public addNewBall(String color)方法,
遍历已有的球balls,从中找到所需要创建的颜色的球,调用其clone方法
并把clone出来的新球添加到balls里面。
# Memento Pattern
## Memento.java
新建一个class Memento 用来保存Ballpit的 internal state(即:balls & tickCount)。
## Ballpit.java
新增2个方法:
getMemento() : Creates a memento containing a snapshot of its current internal state
setMemento(Memento m): Uses the memento restore its internal state
## Caretaker.java
新建一个class Caretaker用于保存全部的Memento. 并提供获取某一个Memento的方法。
Responsible for the mementoes’ safekeeping.
Never operates on or examines the contents of a memento.
# UML:
https://app.lucidchart.com/invitations/accept/a4d4e093-74a9-4d26-b891-56c82c84145b