您的位置:首页 > 房产 > 家装 > 安阳招聘网_鄂州网警_深圳关键词优化平台_嘉兴seo外包

安阳招聘网_鄂州网警_深圳关键词优化平台_嘉兴seo外包

2025/4/23 23:32:34 来源:https://blog.csdn.net/duibuqiwoshijing/article/details/147075808  浏览:    关键词:安阳招聘网_鄂州网警_深圳关键词优化平台_嘉兴seo外包
安阳招聘网_鄂州网警_深圳关键词优化平台_嘉兴seo外包

1.使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man对象,如果传入参数“W”,则返回一个Woman对象,用Java语言实现该场景。现需要增加一个新的Robot类,如果传入参数“R”,则返回一个Robot对象,对代码进行修改并注意“女娲”的变化。

2.现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF图片读取器(GifReader)用于读取GIF格式的图片、JPG图片读取器(JpgReader)用于读取JPG格式的图片。图片读取器对象通过图片读取器工厂ImageReaderFactory来创建,ImageReaderFactory是一个抽象类,用于定义创建图片读取器的工厂方法,其子类GifReaderFactory和JpgReaderFactory用于创建具体的图片读取器对象。使用工厂方法模式实现该程序的设计。

1. 简单工厂模式。参考类图如下所示:

分析:在本实例中,Nvwa类充当工厂类,其中定义了工厂方法makePerson(),Person类充当抽象产品类,Man、Woman和Robot充当具体产品类。工厂方法makePerson()的代码如下所示:

public static Person makePerson(char arg)

{

    Person person = null;

    switch(arg)

    {

        case 'M':

        person = new Man();  break;

        case 'W':

        person = new Woman();  break;

        case 'R':

        person = new Robot();  break;

    }

    return person;

}

如果需要增加一个新的具体产品,则必须修改makePerson()方法中的判断语句,需增加一个新的case语句,违背了开闭原则。

2. 工厂方法模式。参考类图如下所示:

分析:在本实例中,ImageReaderFactory充当抽象工厂,GifReaderFactory和JpgReaderFactory充当具体工厂,ImageReader充当抽象产品,GifReader和JpgReader充当具体产品。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com