From b104eab526f226cf11784dcb3256444d803da137 Mon Sep 17 00:00:00 2001 From: yuyu413 Date: Thu, 24 Jun 2021 14:09:14 +0900 Subject: [PATCH] Template method Pattern --- .../templateMethodPattern/MathTeacher.kt | 7 +++++ .../templateMethodPattern/ScienceTeacher.kt | 7 +++++ .../kotlin/templateMethodPattern/Teacher.kt | 26 +++++++++++++++++++ gabi2/src/test/kotlin/TeacherTemplateTest.kt | 17 ++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 gabi2/src/main/kotlin/templateMethodPattern/MathTeacher.kt create mode 100644 gabi2/src/main/kotlin/templateMethodPattern/ScienceTeacher.kt create mode 100644 gabi2/src/main/kotlin/templateMethodPattern/Teacher.kt create mode 100644 gabi2/src/test/kotlin/TeacherTemplateTest.kt diff --git a/gabi2/src/main/kotlin/templateMethodPattern/MathTeacher.kt b/gabi2/src/main/kotlin/templateMethodPattern/MathTeacher.kt new file mode 100644 index 0000000..0e697bf --- /dev/null +++ b/gabi2/src/main/kotlin/templateMethodPattern/MathTeacher.kt @@ -0,0 +1,7 @@ +package templateMethodPattern + +class MathTeacher : Teacher() { + override fun teach() { + println("수학을 가르침니당") + } +} \ No newline at end of file diff --git a/gabi2/src/main/kotlin/templateMethodPattern/ScienceTeacher.kt b/gabi2/src/main/kotlin/templateMethodPattern/ScienceTeacher.kt new file mode 100644 index 0000000..488c6a4 --- /dev/null +++ b/gabi2/src/main/kotlin/templateMethodPattern/ScienceTeacher.kt @@ -0,0 +1,7 @@ +package templateMethodPattern + +class ScienceTeacher:Teacher() { + override fun teach() { + println("과학 가르칩니당") + } +} \ No newline at end of file diff --git a/gabi2/src/main/kotlin/templateMethodPattern/Teacher.kt b/gabi2/src/main/kotlin/templateMethodPattern/Teacher.kt new file mode 100644 index 0000000..2536fda --- /dev/null +++ b/gabi2/src/main/kotlin/templateMethodPattern/Teacher.kt @@ -0,0 +1,26 @@ +package templateMethodPattern + +abstract class Teacher { + fun startClass() { + enterClass() + attendance() + teach() + outside() + } + + // 공통 메서드 + private fun enterClass() { + println("선생님이 강의실로 들어오심니당.") + } + + private fun attendance() { + println("선생님이 출석을 부르고 있어용.") + } + + private fun outside() { + println("수업 끗.") + } + + // 추상 메서드 + abstract fun teach() +} \ No newline at end of file diff --git a/gabi2/src/test/kotlin/TeacherTemplateTest.kt b/gabi2/src/test/kotlin/TeacherTemplateTest.kt new file mode 100644 index 0000000..f6482aa --- /dev/null +++ b/gabi2/src/test/kotlin/TeacherTemplateTest.kt @@ -0,0 +1,17 @@ +import org.junit.jupiter.api.Test +import templateMethodPattern.MathTeacher +import templateMethodPattern.ScienceTeacher + +@Suppress("NonAsciiCharacters") +class TeacherTemplateTest { + val math = MathTeacher() + val science = ScienceTeacher() + + @Test + fun `수학수업시간`() { + math.startClass() + println("======================") + science.startClass() + } + +} \ No newline at end of file