반응형 SMALL 분류 전체보기65 03장 모든 객체의 공통 매서드 아이템 10 equals는 일반 규약을 지켜 재정의하라 다음에서 열거한 상황 중 하나에 해당한다면 재정의하지 않는 것이 최선이다. equals를 재정의 하지 않아도 돼는 경우 1) 각 인스턴스가 본질적으로 고유하다. 2) 인스턴스의 '논리적 동시성'을 검사할 일이 없다. -> String 3) 상위 클래스에서 재정의한 equals가 하위 클래스에도 딱 들어맞는다. 4) 클래스가 private이거나 package-private이고 equals 메서드를 호출할 일이 없다. equals를 재정의 해야 하는 경우 반드시 일반 규약을 따라야 한다. * 반사성: A.equals(A) == true -> 단순히 말하면 객체는 자기 자신과 같아야 한다는 뜻이다. * 대칭성 -> 두 객체는 서로에 대한 동치 여부에 똑같.. 2023. 10. 24. 02. 객체 생성과 파괴 1. 아이템 1. 생성자 대신 정적 팩토리 메서드를 고려하라 1) 이름을 가질 수 있다. //생성자 메서ㄷ, // public Order(boolean prime, boolean urgent, Product product, OrderStatus orderStatus) { // this.prime = prime; // this.urgent = urgent; // this.product = product; // this.orderStatus = orderStatus; // } public static Order primeOrder(Product product) { Order order = new Order(); order.prime = true; order.product = product; return or.. 2023. 10. 15. 15. 디자인 패턴과 프레임워크 아래의 블로그에 해당 프레임워크에 대한 설명이 자세히 설명돼어있어 첨부합니다 https://prodo-developer.tistory.com/64 2023. 10. 13. 14. 일관성 있는 협력 애플리케이션을 개발하다 보면 유사한 요구사항을 반복적으로 추가하거나 수정하게 되는 경우가 있다. -> 이러한 상황에서 각 협력이 서로 다른 패턴을 따를 경우에는 전체적인 설계의 일관성이 서서히 무너지게 된다. -> 객체지향 패러다임의 장점은 설계를 재사용할 수 있다는 것이다. -> 재사용은 공짜로 얻어지지 않는다. 재사용을 위해서는 객체들의 협력 방식을 일관성 있게 만들어야 한다. -> 과거의 해결 방법을 반복적으로 사용해서 유사한 기능을 구현하는 데 드는 시간과 노력을 대폭 줄일 수 있다. 또한 코드가 이해하기 쉬워진다. ⚈ 지금 보고 있는 코드가 얼마 전에 봤던 코드와 유사하다는 사실을 아는 순간 새로운 코드가 직관적인 모습으로 다가오는 것을 느끼게 될 것이다. ⚈ 14장의 주제 : 일관성 있는 협력.. 2023. 10. 13. 21 결론 그리고 자바의 미래 동작 파라미터화(람다와 메서드 참조) 메서드로 전달되는 값은 Function, Predicate, BiFunction 등의 형식을 가지며, 메서드를 수신한 코드에서는 apply, test 등의 메서드로 코드를 실행할 수 있다. 람다는 자바8에서의 추가된 가장 혁신적인 기능이다. 스트림 API (Java8) 컬렉션의 n번 탐색하여 결과를 찾아내는 연산을 스트림을 API의 파이프라이닝을 통하여 한번의 게으른 연산으로 값을 찾을 수 있다. parallel 메서드로 인하여 스트림을 병렬로 처리할 수 있다. 내부반복, 외부반복, 부작용 없는 연산, 람다와 메서드 참조로 파라미터화된 메서드, 함수형 개념이 핵심이다. CompletableFuture 클래스 (Java8) Future 인터페이스 제공(Java 5) 여.. 2023. 10. 13. 20.OOP와 FP의 조화:자바와 스칼라 비교 1.스칼라 소개 명령형, 함수형으로 구현된 Hello World예제 확인, 스칼라의 자료구조 확인(List, Set, Map, Stream, Tuple, Option...) 1. Hello Beer 스칼라에서는 모든 것이 객체다. = 기본자료형(primitive)이 없다성 스칼라는 자동으로 변수형을 추론하는 기능이 있다. 모든 변수의 형식은 컴파일 할 때 결정된다. // object로 클래스를 정의하고 동시에 싱글턴 객체를 만들었다. object Beer { // object 내부에 선언된 메서드는 정적 메서드로 간주되므로 static을 명시할 필요 없다. def main(args: Array[String]) { var n : Int = 2 while (n println(s"hello ${n}") } /.. 2023. 10. 13. 이전 1 2 3 4 5 ··· 11 다음 반응형 LIST