내 응용 프로그램에 대한 데이터베이스 항목을 처리하는 단일 개체가 있지만 테스트 중에 유사한 클래스를 사용하여 서로 간섭하지 않는 작은 테스트 데이터베이스를 많이 가질 수 있기를 원합니다.
싱글 톤을 삭제하고 시작할 때 데이터베이스 클래스의 새 인스턴스를 생성 할 수 있지만, 이는 데이터베이스 작업이 필요한 모든 곳으로이 인스턴스를 전달해야한다는 것을 의미합니다.
데이터베이스 클래스의 단일 인스턴스에 대한 인터페이스로 작동하는 싱글 톤을 만들 수 있습니다. 다음과 같은 것 :
object DB{
val db = new Database()
def set(a:Int,b:Int) = db.set(a,b)
def get(a:Int) = db.get(a)
}
이것은 어리 석고 무의미한 느낌이들뿐입니다. 특히 데이터베이스 클래스가 상당히 크고 모든 메서드에 대해 그렇게해야 할 때 그렇습니다. 이 문제를 해결하는 더 좋은 방법이 있습니까?
감사!
이를 달성하는 가장 좋은 방법은 케이크 패턴을 사용하는 것이지만 실제로 DB
클래스의 모든 메서드를 확장해야합니다 .
이를 위해 나는이 기사를 따를 것이다 : http://www.warski.org/blog/2014/02/using-scala-traits-as-modules-or-the-thin-cake-pattern/
케이크 패턴을 만든 후에는 테스트 소스 코드에서만 테스트에 사용되는 "다른 DB"를 구현하는 특성 하나만 있으면됩니다. 그리고 물론 그 특성은 메인 소스 코드에서 "실제 DB"를 구현합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다