Design and provide unit tests to cover more use cases.
@Test
    public void allTest() throws Exception {
        
        List<URL> urls = new ArrayList<>();
        urls.add(testUrl);
        
        abstractRegistry.register(testUrl);
        Assert.assertTrue(abstractRegistry.getRegistered().contains(testUrl));
        abstractRegistry.subscribe(testUrl, listener);
        Assert.assertTrue(abstractRegistry.getSubscribed().containsKey(testUrl));
        Assert.assertFalse(notifySuccess);
        abstractRegistry.notify(urls);
        Assert.assertTrue(notifySuccess);
        abstractRegistry.unsubscribe(testUrl, listener);
        Assert.assertFalse(abstractRegistry.getSubscribed().containsKey(listener));
        abstractRegistry.unregister(testUrl);
        Assert.assertFalse(abstractRegistry.getRegistered().contains(testUrl));
    }
    private List<URL> getList() {
        List<URL> list = new ArrayList<>();
        URL url1 = new URL("dubbo", "192.168.0.1", 1000);
        URL url2 = new URL("dubbo", "192.168.0.2", 1001);
        URL url3 = new URL("dubbo", "192.168.0.3", 1002);
        list.add(url1);
        list.add(url2);
        list.add(url3);
        return list;
    }
}