Test project for learning GoF design pattern

Overview

DesignPattern

Test project for learning GoF design pattern

ㅁ개요

  • 객체지향 설계의 교과서라고 불리는 Design Pattern 을 직접 Activity 별로 구현해봤습니다.

ㅁ동기

  • 물론 디자인패턴을 몰라도 기능은 얼마든지 만들어낼 수 있지만, 앱을 한 두개 만들어보면서 설계하는 법을 천천히라도 익히는게 장기적으로 오히려 시간단축에 유리할 것이라는 판단이었습니다. 누군가가 new 키워드를 남발하면서 똑같은 코드를 작성하고 있을 때, 저는 설계해둔 다이어그램을 보면서 효율적으로 코드를 완성하고 싶었습니다.

ㅁ얻은 것

  • 개인블로그에도 따로 정리하면서 개념이 꽤 잡혔고, UML 다이어그램이 솔직히 많이 헷갈렸었는데 다이어그램을 보고 어느정도 파악할 수 있게 됐습니다. interface 와 abstrace class, 그리고 class 와 activity 까지 어떤식으로 추상화부터 구현까지 명확해져가는지, 어떻게 활용하는지 견문을 넓힐 수 있었습니다. 확실히 추상화를 다룰 수 있다면 코드가 추가/변경 되더라도 쉽게 대처할 수 있겠다는 걸 느꼈습니다.

ㅁ아쉬운 것

  • 시간이 생각보다 너무 오래 걸렸습니다. 족히 앱 2개 정도는 만들 시간이었는데 좀 아쉽습니다. 다만, 패턴이 23개 라는 점, 일부러 영어 자료를 많이 조사하면서 익숙하게 했다는 점, 실제 .java 파일이 120개 가량 생성됐다는 점을 감안했을 때 일반적인 속도가 아니었나...합니다.

ㅁ비고

  • 솔직히 쉽게 끝낼 수 있을 줄 알았는데 새로운 것을 알아가고 이해하고 공부하고 응용해서 적용한다는게 꽤 많이 힘들었습니다. 그래도 끝까지 해냈고 이후에는 더 좋은 설계를 구현할 수 있다고 확신합니다.
You might also like...

Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

Oryx 2 is a realization of the lambda architecture built on Apache Spark and Apache Kafka, but with specialization for real-time large scale machine l

Mar 12, 2021

Learning Based Java (LBJava)

Learning Based Java LBJava core LBJava examples LBJava maven plugin Compiling the whole package From the root directory run the following command: Jus

Jun 9, 2019

A course for learning how to program FRC robots using the WPILib and a Romi robot.

FRC-Romi-Programming-Course A course for learning how to program FRC robots using the WPILib and a Romi robot. This course is designed for FRC teams o

Nov 9, 2022

Bazel training materials and codelabs focused on beginner, advanced and contributor learning paths

Bazel-learning-paths This repo has materials for learning Bazel: codelabs, presentations, examples. We are open sourcing the content for training engi

Nov 14, 2022

Tribuo - A Java machine learning library

Tribuo - A Java machine learning library

Tribuo - A Java prediction library (v4.2) Tribuo is a machine learning library in Java that provides multi-class classification, regression, clusterin

Dec 28, 2022

Java time series machine learning tools in a Weka compatible toolkit

UEA Time Series Classification A Weka-compatible Java toolbox for time series classification, clustering and transformation. For the python sklearn-co

Nov 7, 2022

MALLET is a Java-based package for statistical natural language processing, document classification, clustering, topic modeling, information extraction, and other machine learning applications to text.

MALLET is a Java-based package for statistical natural language processing, document classification, clustering, topic modeling, information extraction, and other machine learning applications to text.

Jan 2, 2023

An Engine-Agnostic Deep Learning Framework in Java

An Engine-Agnostic Deep Learning Framework in Java

Deep Java Library (DJL) Overview Deep Java Library (DJL) is an open-source, high-level, engine-agnostic Java framework for deep learning. DJL is desig

Jan 7, 2023

Reference implementation for MINAS (MultI-class learNing Algorithm for data Streams), an algorithm to address novelty detection in data streams multi-class problems.

Reference implementation for MINAS (MultI-class learNing Algorithm for data Streams), an algorithm to address novelty detection in data streams multi-class problems.

Sep 7, 2022
Owner
null
Datumbox is an open-source Machine Learning framework written in Java which allows the rapid development of Machine Learning and Statistical applications.

Datumbox Machine Learning Framework The Datumbox Machine Learning Framework is an open-source framework written in Java which allows the rapid develop

Vasilis Vryniotis 1.1k Dec 9, 2022
Java Statistical Analysis Tool, a Java library for Machine Learning

Java Statistical Analysis Tool JSAT is a library for quickly getting started with Machine Learning problems. It is developed in my free time, and made

null 752 Dec 20, 2022
Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

Oryx 2 is a realization of the lambda architecture built on Apache Spark and Apache Kafka, but with specialization for real-time large scale machine l

Oryx Project 1.8k Dec 28, 2022
Statistical Machine Intelligence & Learning Engine

Smile Smile (Statistical Machine Intelligence and Learning Engine) is a fast and comprehensive machine learning, NLP, linear algebra, graph, interpola

Haifeng Li 5.7k Jan 1, 2023
On-device wake word detection powered by deep learning.

Porcupine Made in Vancouver, Canada by Picovoice Porcupine is a highly-accurate and lightweight wake word engine. It enables building always-listening

Picovoice 2.8k Dec 30, 2022
An Engine-Agnostic Deep Learning Framework in Java

Deep Java Library (DJL) Overview Deep Java Library (DJL) is an open-source, high-level, engine-agnostic Java framework for deep learning. DJL is desig

Amazon Web Services - Labs 2.9k Jan 7, 2023
A machine learning package built for humans.

aerosolve Machine learning for humans. What is it? A machine learning library designed from the ground up to be human friendly. It is different from o

Airbnb 4.8k Dec 30, 2022
java deep learning algorithms and deep neural networks with gpu acceleration

Deep Neural Networks with GPU support Update This is a newer version of the framework, that I developed while working at ExB Research. Currently, you

Ivan Vasilev 1.2k Jan 6, 2023
statistics, data mining and machine learning toolbox

Disambiguation (Italian dictionary) Field of turnips. It is also a place where there is confusion, where tricks and sims are plotted. (Computer scienc

Aurelian Tutuianu 63 Jun 11, 2022