[디자인 모델 6 대 원칙]: 단일 직책 원칙 - 환상 적 인 서 유 를 데려 갈 게 (1)
2983 단어 디자인 모드
개폐 원칙 (3)
디 미트 원칙 - 환상 적 인 서 유 를 데려 다 줄 게 (4)
리 씨 교체 원칙 (5)
인터페이스 격 리 원칙 (6)
정의. 단일 직책 원칙 의 영문 이름 은 Single Responsibility Principle 이 고 줄 임 말 은 SRP 입 니 다. 한 가지 유형 에 있어 서 유형의 직책 은 단일 하고 대외 적 으로 하나의 기능 만 제공 하 며 그 변화의 원인 은 하나 밖 에 없어 야 한다.통속 적 으로 말 하면 한 가지 유형의 함 수 는 하나의 기능 만 을 위해 서비스 하고 관련 성 이 매우 높다 는 것 이다.
케이스
한 조 의 게이머 들 이 팀 을 구성 하여 오 래 국 에 가서 낚시 를 하 다.
//
// .cpp
// c++
//
// Created by on 16/5/1.
// Copyright © 2016 liulongling. All rights reserved.
//
#include
#include
#include
위의 코드 를 보면 낚시 류 가 두 가지 일 을 했 고 사용자 와 물고기 간 의 조작 을 제외 하고 사용자 가 방 에서 나 가 는 조작 도 볼 수 있다.단일 직책 원칙 의 정 의 는 대외 적 으로 한 가지 기능 만 제공 하고 두 가지 기능 을 제공 하 는 것 이다.그래서 결합 을 풀 어야 합 니 다.코드 는 다음 과 같 습 니 다:
//
// .cpp
// c++
//
// Created by
// Copyright © 2016 liulongling. All rights reserved.
//
#include
#include
using namespace std;
//AL
//
class User
{
public:
User(int id)
{
this->userId = id;
this->eatTime =1;
}
int getId()
{
return this->userId;
}
time_t getEatTime()
{
return this->eatTime;
}
private:
int userId;
int eatTime;
};
//
class FishingRoom
{
public:
FishingRoom()
{
this->users.clear();
}
//
void insert(User user)
{
cout<users.size() >=5)
{
cout<users.push_back(user);
}
//
void exit(User user)
{
}
list getUsers()
{
return this->users;
}
private:
list users;
};
class Fishing
{
public:
Fishing(FishingRoom* room)
{
this->room = room;
}
void fishEat()
{
for(User& user:this->room->getUsers())
{
if(user.getEatTime()>0)
{
cout<room;
}
private:
FishingRoom* room;
};
int main()
{
FishingRoom* room = new FishingRoom;
Fishing fish(room);
for(int i = 0 ;i<6;i++){
User user(i+1);
fish.getRoom()->insert(user);
}
fish.fishEat();
return 0;
}
다음 편 개폐 원칙 - 환상 적 인 서 유 를 안내 합 니 다 (2)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.