比如说Color接口有三个实现类分别是:Red、Blue和Green现在我要在运行的时候才决定用某个实现类怎么管理比较优雅?别if..else..
学习是最好的投资!
工厂方法模式
프로그래밍에는 顺序, 分支, 循环의 세 가지 구조가 있습니다. if-else가장 많이 사용되는 브랜치 구조로 필수입니다.
顺序
分支
循环
if-else
이 문제에 대해 if-else은 프로그래밍을 배운 사람이라면 누구나 가장 간단한 프로그래밍 방법입니다. 그리고 가장 단순한 것이 가장 우아합니다.
if-else에서 가끔 안 좋은 점은 if에 if-else이 중첩되어 있어 논리적 판단의 깊이가 지나치게 높다는 점입니다.
if
그래서 좋은 해결책은 if을 일찍 종료할 수 있을 때 미리 결과를 반환하여 if의 깊이가 최대 2레벨이 되도록 하는 것입니다.
다음과 비슷한 질문을 볼 수 있습니다. if-else가 많은데 어떻게 최적화하나요?
디자인 패턴은 편리함을 제공할 수 있지만 자신의 솔루션에 디자인 패턴을 강요하지 마세요. 자신만의 코드에 대해 简单的设计과 设计模式 사이에서 절충해야 합니다.
简单的设计
设计模式
제목 설명이 디자인 패턴의 策略模式에 더 어울리는 느낌입니다.
策略模式
다형성을 사용하고 암시적 유형 변환에 맡겨두면 어떨까요? 인터페이스 메소드의 구현에 따라 처리됩니다.
工厂方法模式
프로그래밍에는
顺序
,分支
,循环
의 세 가지 구조가 있습니다.if-else
가장 많이 사용되는 브랜치 구조로 필수입니다.이 문제에 대해
if-else
은 프로그래밍을 배운 사람이라면 누구나 가장 간단한 프로그래밍 방법입니다. 그리고 가장 단순한 것이 가장 우아합니다.if-else
에서 가끔 안 좋은 점은if
에if-else
이 중첩되어 있어 논리적 판단의 깊이가 지나치게 높다는 점입니다.그래서 좋은 해결책은
if
을 일찍 종료할 수 있을 때 미리 결과를 반환하여if
의 깊이가 최대 2레벨이 되도록 하는 것입니다.다음과 비슷한 질문을 볼 수 있습니다.
if-else가 많은데 어떻게 최적화하나요?
디자인 패턴은 편리함을 제공할 수 있지만 자신의 솔루션에 디자인 패턴을 강요하지 마세요. 자신만의 코드에 대해
简单的设计
과设计模式
사이에서 절충해야 합니다.제목 설명이 디자인 패턴의
策略模式
에 더 어울리는 느낌입니다.다형성을 사용하고 암시적 유형 변환에 맡겨두면 어떨까요? 인터페이스 메소드의 구현에 따라 처리됩니다.