Khác biệt giữa bản sửa đổi của “Factory method”

Nội dung được xóa Nội dung được thêm vào
Addbot (thảo luận | đóng góp)
n Bot: Di chuyển 21 liên kết ngôn ngữ đến Wikidata tại d:q637921 Addbot
Dòng 19:
Chương trình hỗ trợ nhiều định dạng ảnh khác nhau, và mỗi định dạng ảnh sẽ có một lớp hỗ trợ việc đọc tập tin.
<source lang="java">
public interface ImageReader {
{
public DecodedImage getDecodedImage();
}
public class GifReader implements ImageReader {
 
{
public GifReader( InputStream in ) {
{
// check that it's a gif, throw exception if it's not, then if it is
// decode it.
}
public DecodedImage getDecodedImage() {
{
return decodedImage;
}
}
public class JpegReader implements ImageReader {
{
//....
}
Hàng 45 ⟶ 41:
Mỗi khi chương trình đọc một ảnh, nó cần phải tạo một đối tượng phù hợp để đọc ảnh đó dựa vào những thông tin trong tập tin. Việc này có thể gói gọn trong factory method:
<source lang="java">
public class ImageReaderFactory {
{
{
public static ImageReader getImageReader( InputStream is ) {
 
{
int imageType = figureOutImageType( is );
 
switch( imageType ) {
{
case ImageReaderFactory.GIF:
return new GifReader( is );