首页 > 其他分享 >实验4:抽象工厂模式

实验4:抽象工厂模式

时间:2024-10-28 08:46:59浏览次数:5  
标签:抽象 java package show 工厂 实验 example org public

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解抽象工厂模式的动机,掌握该模式的结构;

2、能够利用抽象工厂模式解决实际问题。

 

[实验任务一]:人与肤色

使用抽象工厂模式,完成下述产品等级结构:

 

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

1、类图

 

 

2、源代码

AbstractFactory.java

package org.example;

 

public interface AbstractFactory {

    public Man produceMan();

    public Woman produceWoman();

}

 

YellowFactory.java

package org.example;

 

public class YellowFactory implements AbstractFactory{

    public Man produceMan()

    {

        return new YellowMan();

    }

    public Woman produceWoman()

    {

        return new YellowWoman();

    }

}

BlackFactory.java

package org.example;

 

public class BlackFactory implements AbstractFactory{

    public Man produceMan()

    {

        return new BlackMan();

    }

    public Woman produceWoman()

    {

        return new BlackWoman();

    }

}

WhiteFactory.java

package org.example;

 

public class WhiteFactory implements AbstractFactory{
    public Man produceMan()
    {
        return new WhiteMan();
    }
    public Woman produceWoman()
    {
        return new Woman() {
            @Override
            public void show() {

            }
        };
    }
}

Man.java

package org.example;

 

public interface Man {

    public void show();

}

Woman.java

package org.example;

 

public interface Woman {

    public void show();

}

YellowMan.java

package org.example;

 

public class YellowMan implements Man{

    public void show()

    {

        System.out.println("黄皮肤的男性");

    }

}

BlackMan.java

package org.example;

 

public class BlackMan implements Man{

    public void show()

    {

        System.out.println("黑皮肤的男性");

    }

}

WhiteMan.java

package org.example;

 

public class WhiteMan implements Man{

    public void show()

    {

        System.out.println("白皮肤的男性");

    }

}

YellowWoman.java

package org.example;

 

public class YellowWoman implements Woman {

    public void show()

    {

        System.out.println("黄皮肤的女性");

    }

}

BlackWoman.java

package org.example;

 

public class BlackWoman implements Woman {

    public void show()

    {

        System.out.println("黑皮肤的女性");

    }

}

WhiteWoman.java

package org.example;

 

public class WhiteWoman implements Woman {

    public void show()

    {

        System.out.println("白皮肤的女性");

    }

}

Main.java

package org.example;

 

public class main {

    public static void main(String args[])

    {

        try

        {

            AbstractFactory fac;

            Man m;

            Woman w;

            fac=new WhiteFactory();

            m=fac.produceMan();

            m.show();

            w=fac.produceWoman();

            w.show();

        }

        catch(Exception e)

        {

            System.out.println(e.getMessage());

        }

    }

}

 

 

 

标签:抽象,java,package,show,工厂,实验,example,org,public
From: https://www.cnblogs.com/yuanxinglan/p/18509583

相关文章

  • 实验2 类和对象_基础编程1
    1.实验任务1t.h1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数12~......
  • 20222304 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    实验内容1.1实践内容正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧使用msfvenom生成jar、apk等其他文件使用veil加壳工具使用C+shellcode进行编程通过组合应用各种技术实现恶意代码免杀用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电......
  • 中国计量大学《C语言程序设计》课程实验报告
    中国计量大学《C语言程序设计》课程实验报告实验课程:   C语言程序设计        实验名称:实验一 熟悉上机环境、程序设计-顺序结构                                      实验......
  • 实验3
    实验三任务1:源代码:1#include<stdio.h>2charscore_to_grade(intscore);//函数声明3intmain(){4intscore;5chargrade;6while(scanf("%d",&score)!=EOF){7grade=score_to_grade(score);//函数调用8......
  • 实验二 c++
    实验任务一源代码t.h1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数12......
  • 小学科学实验方法
    小学科学实验方法1.地球形状,假设你生活在远古时期,你怎么知道地球的形状呢?一是猜测,这种方法不科学,经常出现错误,二是间接观察,观察海边的船帆,观察月食时地球阴影的形状,观察同一时间阳光的角度,三是直接观察,随着科技的发展,人类可以乘坐宇宙飞船等遨游太空,可以直接看到地球的局部或全部......
  • 实验2 类和对象_基础编程1
    任务1: t.h#pragmaonce#include<string>classT{public:  T(intx=0,inty=0);   T(constT&t);   T(T&&t);    ~T();      voidadjust(intratio);    voiddisplay()const;     private:  intm1,m2;public:......
  • 2024HIT哈工大计算机网络实验(详细注释、Java代码实现)
    点此去往代码仓库,持续更新实验内容HIT计算机网络实验大部分好像都是用的C/C++代码,网上找很少看到Java的代码,或者不是很详细,所以我自己总结了一下发在了Github上,有详细注释和内容解释,还有一些写代码时的错误以及找错误的心路历程。如果能够对你有所帮助,麻烦点一点star谢谢啦......
  • 【设计模式】Java创建型设计模式之工厂模式魔法:打造灵活的冰箱工厂
    标题:《Java工厂模式魔法:打造灵活的冰箱工厂》摘要:本文深入探讨Java中的创建型设计模式之工厂模式。通过一个冰箱工厂的示例,详细解释工厂模式的概念、实现方法以及其带来的好处。读者将了解到如何使用工厂模式创建不同品牌和大小的冰箱,同时体会到该模式在提高代码可维......
  • 实验二
    任务一代码1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数......