단일 책임 원칙을 따라야 하는 이유
3928 단어 beginnersprogramming
SOLID are 5 software development principles or guidelines based on Object-Oriented design making it easier for you to make your projects scalable and maintainable.
규칙이라기보다는 모범 사례에 가깝습니다.
단일 책임
솔리드의 S.
그것은 말한다
A class should have one, and only one reason to change.
목표는 행동이나 관심사를 분리하는 것입니다. 모든 것은 자신의 위치가 있고 거기에 배치되어야 합니다.
원래
A class should have one, and only one reason to change.
책임과 동작이 다른 대형 일반 클래스와 반대입니다.
이 패턴은 우리가 역할별 인터페이스를 만드는 데 집중하는 것과 같은 다른 SOLID 원칙에서 볼 수 있습니다.
간단한 사용 사례
임의의 사용자 데이터를 일부 데이터베이스에 저장한다고 가정해 보겠습니다. 이것은 우리가 일반적으로 함수(pseudocode-ish) 내에서 수행하는 것입니다.
function createUser(userData){
// 1. validate user data for email and password keys
// 2. check if the email is already registered
// 3. save the user to DB
// 4. return saved user as a response
}
SINGLE RESPONSIBILITY 접근 방식을 통해 우리는 특정 논리를 처리하고 이에 대해서만 책임지는 전용 기능을 만들 것입니다.
function validateUser(user){
// will validate userObject for email and password keys
}
function isEmailRegistered(email){
// will check if the email is already taken
}
function saveUserData(user){
// will save user data to db
}
function createUser(userData){
validateUser(userData)
if(isEmailTaken(userData.email)){
// throw some error here
}
var user = saveUserData(userData)
return user
}
이것은 간단한 예이지만 여러 유효성 검사 및 복잡한 논리를 처리할 때 이러한 유형의 접근 방식은 정말 편리합니다.
그것을 사용하는 이유
이것들을 고려하십시오
또한 변경해야 하는/해야 하는/원하는/강제적인-시간이 있고 SINGLE RESPONSIBILITY를 따랐을 때 훨씬 빠르고 쉬울 것입니다.
무언가를 깨뜨리거나 버그가 있으면 어떻게 합니까? 음, 이 원칙에 따라 쉽게 추적할 수 있으며, 무언가를 깨뜨리면 전체 시스템이 아니라 그 한 가지만 깨뜨리는 것입니다.
이 규칙은 다음과 같은 다른 SOLID 원칙을 구현하는 데 많은 도움이 됩니다.
팁
자신의 프로젝트에 대한 테스트를 작성하는 사람이라면 이 규칙을 확실히 좋아할 것입니다. 이 규칙은 예측 가능한 동작과 제어를 제공합니다.
여기 있습니다. 간단하고 쉽게 설명했으면합니다. 프로젝트에서 SOLID 원칙을 사용합니까? 아래에 댓글을 달아주세요.
무엇 향후 계획
2분 안에 원리에 대해 Laern.
Reference
이 문제에 관하여(단일 책임 원칙을 따라야 하는 이유), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rhuzaifa/why-you-should-be-following-the-single-responsibility-principle-1h2a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)