Skip to content

irroca/OOP_PJ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ๆ™บ่ƒฝๆ‹›่˜็ณป็ปŸ (Smart Recruitment System)

้กน็›ฎ็ฎ€ไป‹

ๆœฌ้กน็›ฎๆ˜ฏ"้ขๅ‘ๅฏน่ฑกๆŠ€ๆœฏ"่ฏพ็จ‹็š„็ปผๅˆ่ฎพ่ฎกไฝœไธš๏ผŒๅฎž็Žฐไบ†ไธ€ไธชๅŸบไบŽJava็š„ๆ™บ่ƒฝๆ‹›่˜็ณป็ปŸใ€‚็ณป็ปŸ่ฟ็”จ้ขๅ‘ๅฏน่ฑก็š„ๅˆ†ๆžไธŽ่ฎพ่ฎกๆ–นๆณ•๏ผŒๅŒ…ๅซๅฎŒๆ•ด็š„UMLๆจกๅž‹่ฎพ่ฎกๅ’Œไปฃ็ ๅฎž็Žฐใ€‚

้กน็›ฎ็ป“ๆž„

OOP_PJ/
โ”œโ”€โ”€ doc/                                    # ่ฎพ่ฎกๆ–‡ๆกฃ
โ”‚   โ”œโ”€โ”€ ้œ€ๆฑ‚ๆŠฅๅ‘Š.md                          # ็ณป็ปŸ้œ€ๆฑ‚ๅˆ†ๆžๆŠฅๅ‘Š
โ”‚   โ”œโ”€โ”€ Class Diagram.txt                   # ็ฑปๅ›พ (PlantUML)
โ”‚   โ”œโ”€โ”€ Sequence Diagram.md                 # ้กบๅบๅ›พ
โ”‚   โ””โ”€โ”€ State Diagram.md                    # ็Šถๆ€ๅ›พ
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main/java/com/recruitment/
โ”‚   โ”‚   โ”œโ”€โ”€ Main.java                       # ไธป็จ‹ๅบๅ…ฅๅฃ
โ”‚   โ”‚   โ”œโ”€โ”€ config/                         # ้…็ฝฎ็ฎก็†
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ SystemConfig.java          # ็ณป็ปŸ้…็ฝฎ(ๅ•ไพ‹)
โ”‚   โ”‚   โ”œโ”€โ”€ enums/                          # ๆžšไธพ็ฑปๅž‹
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ UserType.java              # ็”จๆˆท็ฑปๅž‹
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ UserStatus.java            # ็”จๆˆท็Šถๆ€
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ JobStatus.java             # ่Œไฝ็Šถๆ€
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ApplicationStatus.java     # ็”ณ่ฏท็Šถๆ€
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ InterviewType.java         # ้ข่ฏ•็ฑปๅž‹
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ AIInterviewStatus.java     # AI้ข่ฏ•็Šถๆ€
โ”‚   โ”‚   โ”œโ”€โ”€ model/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ entity/                    # ๅฎžไฝ“็ฑป
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ User.java             # ็”จๆˆทๅŸบ็ฑป(ๆŠฝ่ฑก)
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ JobSeeker.java        # ๆฑ‚่Œ่€…
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Recruiter.java        # ๆ‹›่˜่€…
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ SystemAdmin.java      # ็ณป็ปŸ็ฎก็†ๅ‘˜
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Job.java              # ่Œไฝ
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Resume.java           # ็ฎ€ๅކ
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Application.java      # ๆŠ•้€’็”ณ่ฏท
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ Interview.java        # ้ข่ฏ•
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ valueobject/               # ๅ€ผๅฏน่ฑก
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ SalaryRange.java      # ่–ช่ต„่Œƒๅ›ด
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ Education.java        # ๆ•™่‚ฒ่ƒŒๆ™ฏ
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ WorkExperience.java   # ๅทฅไฝœ็ปๅކ
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ Skill.java            # ๆŠ€่ƒฝ
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ ProjectExperience.java # ้กน็›ฎ็ป้ชŒ
โ”‚   โ”‚   โ”œโ”€โ”€ pattern/                        # ่ฎพ่ฎกๆจกๅผๅฎž็Žฐ
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ observer/                  # ่ง‚ๅฏŸ่€…ๆจกๅผ
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Observer.java         # ่ง‚ๅฏŸ่€…ๆŽฅๅฃ
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ EventManager.java     # ไบ‹ไปถ็ฎก็†ๅ™จ
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ NotificationService.java # ้€š็ŸฅๆœๅŠก
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ factory/                   # ๅทฅๅŽ‚ๆจกๅผ
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ UserFactory.java      # ็”จๆˆทๅทฅๅŽ‚ๆŽฅๅฃ
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ JobSeekerFactory.java # ๆฑ‚่Œ่€…ๅทฅๅŽ‚
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ RecruiterFactory.java # ๆ‹›่˜่€…ๅทฅๅŽ‚
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ AdminFactory.java     # ็ฎก็†ๅ‘˜ๅทฅๅŽ‚
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ UserFactoryManager.java # ๅทฅๅŽ‚็ฎก็†ๅ™จ
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ strategy/                  # ็ญ–็•ฅๆจกๅผ
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ MatchStrategy.java    # ๅŒน้…็ญ–็•ฅๆŽฅๅฃ
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ SkillMatchStrategy.java # ๆŠ€่ƒฝๅŒน้…็ญ–็•ฅ
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ ExperienceMatchStrategy.java # ็ป้ชŒๅŒน้…็ญ–็•ฅ
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ ComprehensiveMatchStrategy.java # ็ปผๅˆๅŒน้…็ญ–็•ฅ
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ MatchContext.java     # ็ญ–็•ฅไธŠไธ‹ๆ–‡
โ”‚   โ”‚   โ”œโ”€โ”€ persistence/                    # ๆ•ฐๆฎๆŒไน…ๅŒ–
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ DataPersistenceManager.java # JSONๆ•ฐๆฎ็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ service/                       # ๆœๅŠกๅฑ‚
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ RecruitmentService.java   # ๆ‹›่˜ๆœๅŠก(ๅค–่ง‚)
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ai/
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ AIService.java        # AIๆœๅŠก
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ NLPService.java       # NLPๆœๅŠก
โ”‚   โ”‚   โ””โ”€โ”€ util/                          # ๅทฅๅ…ท็ฑป
โ”‚   โ”‚       โ”œโ”€โ”€ ConsoleUI.java            # ๆŽงๅˆถๅฐ็พŽๅŒ–ๅทฅๅ…ท
โ”‚   โ”‚       โ””โ”€โ”€ HtmlReportGenerator.java  # HTMLๆŠฅๅ‘Š็”Ÿๆˆๅ™จ
โ”‚   โ””โ”€โ”€ test/java/com/recruitment/
โ”‚       โ””โ”€โ”€ RecruitmentSystemTest.java    # ๅ•ๅ…ƒๆต‹่ฏ•
โ”œโ”€โ”€ data/                                  # ๆ•ฐๆฎๅญ˜ๅ‚จ็›ฎๅฝ•(่ฟ่กŒๆ—ถ็”Ÿๆˆ)
โ”œโ”€โ”€ reports/                               # ๆŠฅๅ‘Š่พ“ๅ‡บ็›ฎๅฝ•(่ฟ่กŒๆ—ถ็”Ÿๆˆ)
โ””โ”€โ”€ pom.xml                                # Maven้…็ฝฎ

ๆŠ€ๆœฏๆ ˆ

  • ่ฏญ่จ€: Java 17
  • ๆž„ๅปบๅทฅๅ…ท: Maven
  • ๆต‹่ฏ•ๆก†ๆžถ: JUnit 5
  • ๅทฅๅ…ทๅบ“: Lombok

OOP่ฎพ่ฎก็‰นๆ€ง

ๆœฌ้กน็›ฎไฝ“็Žฐไบ†้ขๅ‘ๅฏน่ฑก็ผ–็จ‹็š„ๆ ธๅฟƒ็‰นๆ€ง๏ผš

1. ๅฐ่ฃ… (Encapsulation)

  • ๆ‰€ๆœ‰ๅฎžไฝ“็ฑปไฝฟ็”จ private ๅฑžๆ€ง + public getter/setter
  • ๆ•ๆ„Ÿไฟกๆฏ๏ผˆๅฆ‚ๅฏ†็ ๏ผ‰้€š่ฟ‡ไธ“้—จๆ–นๆณ•่ฎฟ้—ฎ

2. ็ปงๆ‰ฟ (Inheritance)

  • User (ๆŠฝ่ฑกๅŸบ็ฑป) โ†’ JobSeeker, Recruiter, SystemAdmin
  • ๅญ็ฑป็ปงๆ‰ฟ็ˆถ็ฑปๅฑžๆ€งๅ’Œๆ–นๆณ•๏ผŒๅนถๅฏ้‡ๅ†™

3. ๅคšๆ€ (Polymorphism)

  • getProfile() ๆ–นๆณ•ๅœจไธๅŒๅญ็ฑปๆœ‰ไธๅŒๅฎž็Žฐ
  • onLoginSuccess() ้’ฉๅญๆ–นๆณ•ๅฏ่ขซๅญ็ฑป้‡ๅ†™

4. ๆŠฝ่ฑก (Abstraction)

  • User ๆ˜ฏๆŠฝ่ฑก็ฑป๏ผŒๅฎšไน‰็”จๆˆท็š„้€š็”จ่กŒไธบ
  • getProfile() ๆ˜ฏๆŠฝ่ฑกๆ–นๆณ•๏ผŒๅผบๅˆถๅญ็ฑปๅฎž็Žฐ

5. ่ฎพ่ฎกๆจกๅผๅบ”็”จ

ๆจกๅผ ็ฑปๅž‹ ๅบ”็”จไฝ็ฝฎ ่ฏดๆ˜Ž
ๅ•ไพ‹ๆจกๅผ ๅˆ›ๅปบๅž‹ AIService, EventManager, SystemConfig ็กฎไฟๅ…จๅฑ€ๅ”ฏไธ€ๅฎžไพ‹
ๅทฅๅŽ‚ๆจกๅผ ๅˆ›ๅปบๅž‹ UserFactory, UserFactoryManager ๅฐ่ฃ…ๅฏน่ฑกๅˆ›ๅปบ้€ป่พ‘
็ญ–็•ฅๆจกๅผ ่กŒไธบๅž‹ MatchStrategy, MatchContext ๅŒน้…็ฎ—ๆณ•ๅฏๅŠจๆ€ๅˆ‡ๆข
่ง‚ๅฏŸ่€…ๆจกๅผ ่กŒไธบๅž‹ EventManager, Observer ๆพ่€ฆๅˆไบ‹ไปถ้€š็Ÿฅๆœบๅˆถ
ๆจกๆฟๆ–นๆณ• ่กŒไธบๅž‹ User.login() ๅฎšไน‰็™ปๅฝ•ๆต็จ‹้ชจๆžถ
ๅค–่ง‚ๆจกๅผ ็ป“ๆž„ๅž‹ RecruitmentService ๅฐ่ฃ…ๅคๆ‚ๅญ็ณป็ปŸ
็Šถๆ€ๆจกๅผ ่กŒไธบๅž‹ Application ็ฎก็†็”ณ่ฏท็Šถๆ€่ฝฌๆข
ๅ€ผๅฏน่ฑก ้ข†ๅŸŸ้ฉฑๅŠจ SalaryRange, Education็ญ‰ ไธๅฏๅ˜ๅฏน่ฑก

ๅฟซ้€Ÿๅผ€ๅง‹

็Žฏๅขƒ่ฆๆฑ‚

  • JDK 17+
  • Maven 3.6+

็ผ–่ฏ‘้กน็›ฎ

cd OOP_PJ
mvn clean compile

่ฟ่กŒไธป็จ‹ๅบ

mvn exec:java -Dexec.mainClass="com.recruitment.Main"

ๆˆ–่€…็ผ–่ฏ‘ๅŽ็›ดๆŽฅ่ฟ่กŒ๏ผš

mvn package
java -jar target/smart-recruitment-system-1.0.0.jar

่ฟ่กŒๆต‹่ฏ•

mvn test

ๅŠŸ่ƒฝๆผ”็คบ

่ฟ่กŒไธป็จ‹ๅบๅŽ๏ผŒ็ณป็ปŸไผš่‡ชๅŠจๆ‰ง่กŒๅฎŒๆ•ด็š„ไธšๅŠกๆต็จ‹ๆผ”็คบ๏ผŒๅŒ…ๆ‹ฌ๏ผš

  1. ๅทฅๅŽ‚ๆจกๅผๅˆ›ๅปบ็”จๆˆท - ไฝฟ็”จๅทฅๅŽ‚ๆจกๅผๅˆ›ๅปบๆฑ‚่Œ่€…ๅ’Œๆ‹›่˜่€…
  2. ็ฎ€ๅކๅˆ›ๅปบ - ๅˆ›ๅปบ็ฎ€ๅކๅนถๆทปๅŠ ๆ•™่‚ฒใ€ๅทฅไฝœใ€ๆŠ€่ƒฝไฟกๆฏ
  3. AI็ฎ€ๅކๅˆ†ๆž - AIๅˆ†ๆž็ฎ€ๅކๅนถ็ป™ๅ‡บ็ปผๅˆ่ฏ„ๅˆ†
  4. ่Œไฝๅ‘ๅธƒ - ๆ‹›่˜่€…ๅ‘ๅธƒ่Œไฝ
  5. ็ญ–็•ฅๆจกๅผๅŒน้… - ๆผ”็คบไธๅŒๅŒน้…็ญ–็•ฅ๏ผˆๆŠ€่ƒฝ/็ป้ชŒ/็ปผๅˆ๏ผ‰
  6. ๆŠ•้€’็”ณ่ฏทไธŽAI็ญ›้€‰ - ๆไบค็”ณ่ฏทๅนถ่ฟ›่กŒAIๆ™บ่ƒฝๅŒน้…
  7. ็”ณ่ฏท็Šถๆ€ๆ—ถ้—ด็บฟ - ๆŸฅ็œ‹ๅฎŒๆ•ด็š„็Šถๆ€ๅ˜ๅŒ–ๅކๅฒ
  8. AIๆจกๆ‹Ÿ้ข่ฏ• - ็”Ÿๆˆ้ข่ฏ•้—ฎ้ข˜ๅนถ่ฏ„ไผฐๅ›ž็ญ”
  9. ็ณป็ปŸ็ปŸ่ฎก - ๅฏ่ง†ๅŒ–ๅฑ•็คบ็ณป็ปŸๆ•ฐๆฎ
  10. ่ฎพ่ฎกๆจกๅผๆ€ป็ป“ - ่กจๆ ผๅฑ•็คบๆ‰€ๆœ‰ๅบ”็”จ็š„่ฎพ่ฎกๆจกๅผ

ไบคไบ’ๅผ่œๅ•ๅŠŸ่ƒฝ

ๆผ”็คบ็ป“ๆŸๅŽ๏ผŒๅฏ้€š่ฟ‡่œๅ•ไฝ“้ชŒ๏ผš

  • ๆณจๅ†Œๆฑ‚่Œ่€…/ๆ‹›่˜่€…
  • ๅ‘ๅธƒ/ๆœ็ดข่Œไฝ
  • ๆŸฅ็œ‹็ณป็ปŸๆŠฅๅ‘Š
  • ็”ŸๆˆHTMLๅฏ่ง†ๅŒ–ๆŠฅๅ‘Š
  • ไฟๅญ˜ๆ•ฐๆฎๅˆฐJSONๆ–‡ไปถ
  • ๅฑ•็คบOOP่ฎพ่ฎก็‰นๆ€ง

ๆ–ฐๅขžๅŠŸ่ƒฝ

๐Ÿ“Š HTMLๆŠฅๅ‘Š็”Ÿๆˆ

็”Ÿๆˆ็ฒพ็พŽ็š„HTMLๅฏ่ง†ๅŒ–ๆŠฅๅ‘Š๏ผŒๅŒ…ๅซ๏ผš

  • ็ณป็ปŸ็ปŸ่ฎกๆฆ‚่งˆๅก็‰‡
  • ็”จๆˆทๅˆ—่กจ๏ผˆๅธฆ็Šถๆ€ๆ ‡็ญพ๏ผ‰
  • ่Œไฝๅˆ—่กจ๏ผˆๅธฆ็”ณ่ฏทๆ•ฐ้‡๏ผ‰
  • ็”ณ่ฏท่ฎฐๅฝ•๏ผˆๅธฆ่ฟ›ๅบฆๆก๏ผ‰

๐Ÿ’พ ๆ•ฐๆฎๆŒไน…ๅŒ–

JSONๆ ผๅผ็š„ๆ•ฐๆฎๅญ˜ๅ‚จ๏ผš

  • ็”จๆˆทๆ•ฐๆฎ (users.json)
  • ่Œไฝๆ•ฐๆฎ (jobs.json)
  • ็”ณ่ฏทๆ•ฐๆฎ (applications.json)

๐ŸŽจ ๆŽงๅˆถๅฐ็พŽๅŒ–

  • ๅฝฉ่‰ฒ่ฟ›ๅบฆๆก
  • ๆ ผๅผๅŒ–่กจๆ ผ
  • ไฟกๆฏๆก†ๅ’Œ็Šถๆ€ๅ›พๆ ‡

UMLๆจกๅž‹

็ฑปๅ›พๆฆ‚่งˆ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        <<abstract>>                         โ”‚
โ”‚                           User                              โ”‚
โ”‚  - userId, username, password, email, phone                โ”‚
โ”‚  + login(), activate(), getProfile()                       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
            โ–ฒ                   โ–ฒ                   โ–ฒ
            โ”‚                   โ”‚                   โ”‚
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ”‚  JobSeeker   โ”‚    โ”‚   Recruiter  โ”‚    โ”‚ SystemAdmin โ”‚
    โ”‚  - resume    โ”‚    โ”‚  - company   โ”‚    โ”‚ - permLevel โ”‚
    โ”‚  - skills    โ”‚    โ”‚  - jobs      โ”‚    โ”‚             โ”‚
    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
           โ”‚                   โ”‚
           โ”‚                   โ”‚
           โ–ผ                   โ–ผ
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ”‚    Resume    โ”‚    โ”‚     Job      โ”‚
    โ”‚  - skills    โ”‚    โ”‚  - salary    โ”‚
    โ”‚  - education โ”‚    โ”‚  - status    โ”‚
    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
           โ”‚                   โ”‚
           โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                     โ”‚
                     โ–ผ
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚ Application  โ”‚
              โ”‚  - status    โ”‚
              โ”‚  - score     โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

่ฎพ่ฎกๆจกๅผ็ฑปๅ›พ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     ๅทฅๅŽ‚ๆจกๅผ (Factory)                       โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  <<interface>>          UserFactoryManager                  โ”‚
โ”‚   UserFactory    โ”€โ”€โ”€โ”€โ”€โ”€โ”€> getFactory(type)                  โ”‚
โ”‚       โ–ฒ                                                     โ”‚
โ”‚       โ”œโ”€โ”€ JobSeekerFactory                                  โ”‚
โ”‚       โ”œโ”€โ”€ RecruiterFactory                                  โ”‚
โ”‚       โ””โ”€โ”€ AdminFactory                                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    ็ญ–็•ฅๆจกๅผ (Strategy)                       โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  <<interface>>           MatchContext                       โ”‚
โ”‚  MatchStrategy   <โ”€โ”€โ”€โ”€โ”€โ”€โ”€ setStrategy()                     โ”‚
โ”‚       โ–ฒ                   executeMatch()                    โ”‚
โ”‚       โ”œโ”€โ”€ SkillMatchStrategy                                โ”‚
โ”‚       โ”œโ”€โ”€ ExperienceMatchStrategy                           โ”‚
โ”‚       โ””โ”€โ”€ ComprehensiveMatchStrategy                        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   ่ง‚ๅฏŸ่€…ๆจกๅผ (Observer)                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  <<interface>>           EventManager                       โ”‚
โ”‚    Observer      <โ”€โ”€โ”€โ”€โ”€โ”€โ”€ subscribe()                       โ”‚
โ”‚       โ–ฒ                   notify()                          โ”‚
โ”‚       โ”‚                                                     โ”‚
โ”‚  NotificationService                                        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

้กน็›ฎ็ปŸ่ฎก

  • Javaๆบๆ–‡ไปถ: 35+
  • ไปฃ็ ่กŒๆ•ฐ: 4000+
  • ๅ•ๅ…ƒๆต‹่ฏ•: 20ไธช
  • ่ฎพ่ฎกๆจกๅผ: 8็ง

ไฝœ่€…

้ขๅ‘ๅฏน่ฑกๆŠ€ๆœฏ่ฏพ็จ‹ไฝœไธš

่ฎธๅฏ่ฏ

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages