Java Reference
In-Depth Information
Code 8.5
continued
Source code of the
NewsFeed
class
(second version)
/**
* Construct an empty news feed.
*/
public
NewsFeed()
{
posts =
new
ArrayList<Post>();
}
/**
* Add a post to the news feed.
*
* @param post The post to be added.
*/
public
void
addPost(Post post)
{
posts.add(post);
}
/**
* Show the news feed. Currently: print the news feed details
* to the terminal. (To do: replace this later with display
* in web browser.)
*/
public
void
show()
{
// display all posts
for
(Post post : posts) {
post.display();
System.out.println();
// empty line between posts
}
}
}
As we can see, the code has become significantly shorter and simpler since our change to use
inheritance. Where in the first version (Code 8.3) everything had to be done twice, it now ex-
ists only once. We have only one collection, only one method to add posts, and one loop in the
show
method.
The reason why we could shorten the source code is that, in the new version, we can use the
type
Post
where we previously used
MessagePost
and
PhotoPost
. We investigate this first
by examining the
addPost
method.
In our first version, we had two methods to add posts to the news feed. They had the following
headers:
public void addMessagePost(MessagePost message)
public void addPhotoPost(PhotoPost photo)
Search WWH ::
Custom Search