小编Tho*_*rge的帖子

工厂喜欢带有弹簧豆的图案,没有开关盒

我的目标是根据枚举返回一个方法.目前,我已经创建了一个工厂,但它使用的是我不喜欢的开关盒.代码工作正常但我想使用更好的模式并替换当前的开关案例.你如何设计这个没有任何开关案例或如果否则(实例)......

我还试图在枚举中实现一个Stategy模式.但是无法自动装配bean.

请参阅下面的我目前的代码.

public enum Car {
     AUDI, FORD;
}
Run Code Online (Sandbox Code Playgroud)
public class SuperCar{
     private Car car;
}
Run Code Online (Sandbox Code Playgroud)
public class Audi extends SuperCar{
     // some other properties
}
Run Code Online (Sandbox Code Playgroud)
public class Ford extends SuperCar{
     // some other properties
}
Run Code Online (Sandbox Code Playgroud)
@Service
public class AudiService{

     public void save(Audi audi){
         // some code
     }

}
Run Code Online (Sandbox Code Playgroud)
@Service
public class FordService{

     public void save(Ford ford){
         // some code
     }

}
Run Code Online (Sandbox Code Playgroud)
@Service
public class CarFactory{

     private FordService fordService;
     private AudiService audiService;

     public CarFactory(FordService fordService, AudiService audiService) {
           this.fordService …
Run Code Online (Sandbox Code Playgroud)

java spring factory case switch-statement

5
推荐指数
1
解决办法
221
查看次数

java8 - 来自对象内部属性的groupingby

我想创建一个Map<String,List<A>>A包含B 的地方,groupby由B的属性创建.

public class A{
        private int a;
        private ...
        private B b;
}

public class B{
           private String name;
           private ... 
}
Run Code Online (Sandbox Code Playgroud)

我有一个

List<A> alist;
Run Code Online (Sandbox Code Playgroud)

我想做那样的事情:

Map<String, List<A>> resultmap = alist.stream().collect(Collectors.groupingby(B::getName()));
Run Code Online (Sandbox Code Playgroud)

除了这是不可能访问B.

java dictionary list java-8

4
推荐指数
2
解决办法
3850
查看次数

标签 统计

java ×2

case ×1

dictionary ×1

factory ×1

java-8 ×1

list ×1

spring ×1

switch-statement ×1