본문 바로가기
[책 정리] 9장. LSP(Liskov Substitution Principle): 리스코프 치환 원칙 - Clean Architecture - 리스코프는 하위 타입(subtype)을 아래와 같이 정의했다. "여기에서 필요한 것은 다음과 같은 치환(substitution)원칙이다. S 타입의 객체 o1 각각에 대응하는 T타입 객체 o2 가 있고, T타입을 이용해서 정의한 모든 프로그램 P 에서 o2 의 자리에 o1 을 치환하더라도 P 의 행위가 변하지 않는다면, S는 T의 하위 타입이다." 상속을 사용하도록 가이드하기 - 사용자가 Interface 를 바라보면서 어떤 하위타입이 사용되는지에 의존하지 않는다면 이것은 LSP 를 준수한다고 볼 수 있다. 정사각형/직사각형 문제 - LSP 를 위반하는 전형적인 문제로는 유명한 정사각형/직사각형 문제가 있다. Squre 가 Rectangle 을 상속하는 경우.. Rectangle r = ... r.s.. 2020. 4. 13.
[ios/tutorial] CABasicAnimation, CATransition, CAKeyframeAnimation, CALayer, CAAnimationGroup ( Core Animation ) [ios/tutorial] CABasicAnimation, CATransition, CAKeyframeAnimation, CALayer, CAAnimationGroup ( Core Animation ) http://warmz.tistory.com/entry/Core-Animation-CABasicAnimation-CAKeyframeAnimation-CATransition-CAAnimationGroup -위 블로그가 CoreAnimation 전체에 대해 잘 정리해놓았다.아래 섹션은 각각의 Part 에 대해 조금 더 세세한 정보를 추가해 놓은 것. CABasicAnimation https://developer.apple.com/library/mac/documentation/GraphicsImaging/Ref.. 2017. 12. 1.
[ios/tutorial] Core Animation 모든 것!! [ios/tutorial] Core Animation 모든 것!! 참고 : https://www.objc.io/issues/12-animations/animations-explained/ -Animation 을 수행하는 방법은 크게 2가지. 1. UIView 의 class method “animateWithDuration:” 을 사용하는 방법2. Core Animation 을 사용하는 방법. Simple Animation 이 아니라면 Core Animation 을 사용하는 것이 추천된다.훨씬 코드의 가독성이 좋고, 더 많은 기능을 제공한다.But, 더 많은 학습을 필요로 한다. 물론 애플의 권장사항은 할수만 있다면 항상 UIKit 에서 제공되는 Animation 을 사용하길 원한다. -Core Anima.. 2017. 11. 30.
[Kotlin Tutorial] Generics - Chap9. Generics 참조 : Kotlin in action 9.1. Generic type parameters -Java 와 기본적으로 generic 사용법은 동일하다. -Type Inference 는 가능하지만 명시적으로 써야 하는 케이스도 있다.val authors = listOf(“Dmitry”, “Svetlana”) // type inference 가능 val readers : MutableList = mutableListOf() // type inference 불가능, 명시적 선언val readers = mutableListOf() -Kotlin 에서는 raw type generic 을 사용할 수 없다. ( Java 로 치자면 그냥 List ) 9.1.1. Generic functions and properties.. 2017. 9. 5.
[Java] Unbounded Wildcards [Java] Unbounded Wildcards 참조 : http://docs.oracle.com/javase/tutorial/java/generics/unboundedWildcards.html - Unbounded Wildcard 는 List 와 같이 type 을 ? 로 사용하는 경우를 이야기한다. - Unbounded Wildcard 는 다음 상황에서 유용하게 쓰인다. 1. Object class 를 넣는 것과 같은 용도인 경우. 2. Collection 을 parameter 로 받으면서 List.size, List.clear 등과 같이 type 에 dependency 가 없는 Collection 자체의 함수들만 호출하는 경우. - List 는 List 의 subtype 이다. - List 는 Lis.. 2016. 11. 23.
[Effective Java] 가급적 상속(inheritance) 보다는 컴포지션(composition)을 사용하자. 가급적 상속(inheritance) 보다는 컴포지션(composition)을 사용하자. - 상속은 코드를 재사용하는 강력한 방법이다. 그러나 일을 하는데 가장 좋은 도구는 아니다. 잘못 사용하면 부실한 소프트웨어를 초래한다. - 동일 프로그래머가 서브 클래스와 수퍼 클래스의 구현을 관장하는 같은 패키지 내에서 상속을 사용하는 것은 안전하다 상속을 위해 특별히 설계되고 문서화된 클래스를 확장(extends) 하기 위해 상속을 사용하는 것도 안전하다. 그러나 다른 패키지에 걸쳐 일반적인 실체 클래스로부터 상속을 받는 것은 위험하다. - 상속은 캡슐화(encapsulation) 을 위배한다. 올바른 동작을 위해 서브 클래스는 자신의 수퍼 클래스가 구현하는 상세 내역에 의존한다. 수퍼 클래스의 구현 내역은 소프.. 2016. 10. 27.
반응형