Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 对于不同的对象,我应该使用哪种设计模式来执行不同的方法?_Oop_Design Patterns - Fatal编程技术网

Oop 对于不同的对象,我应该使用哪种设计模式来执行不同的方法?

Oop 对于不同的对象,我应该使用哪种设计模式来执行不同的方法?,oop,design-patterns,Oop,Design Patterns,类a有3个boolean字段,并且有一组此类的对象。我需要对每个对象执行不同的处理,根据其3个字段的组合。我应该采取什么样的模式 public class A { boolean a, b, c; } 多谢各位 丹尼尔查找注册表模式。本质上,您定义了一个接口AHandler,并为要处理的每个组合实现它 然后,创建一个映射,并使用处理程序静态初始化它。查找此映射以找到处理每个组合的处理程序 查找注册表模式。本质上,您定义了一个接口AHandler,并为要处理的每个组合实现它 然后,创建

a
有3个
boolean
字段,并且有一组此类的对象。我需要对每个对象执行不同的处理,根据其3个字段的组合。我应该采取什么样的模式

public class A {
    boolean a, b, c;
}
多谢各位



丹尼尔

查找
注册表
模式。本质上,您定义了一个接口
AHandler
,并为要处理的每个组合实现它


然后,创建一个
映射
,并使用处理程序静态初始化它。查找此映射以找到处理每个组合的处理程序

查找
注册表
模式。本质上,您定义了一个接口
AHandler
,并为要处理的每个组合实现它


然后,创建一个
映射
,并使用处理程序静态初始化它。查找此映射以找到处理每个组合的处理程序

您是说一个逻辑用于
a=t,b=t,c=t
,另一个逻辑用于
a=t,b=t,c=f
等吗?如果您需要根据所有三种状态执行不同的操作,我会为每个不同的操作执行一个策略,并通过开关或通过factory@KroaX这就是需要通过模式实现的切换。我会使用注册表,一个从元组(bool,bool,bool)到处理程序的映射。@Misalevariable是的,就是这样。你是说一个逻辑用于
a=t,b=t,c=t
,另一个逻辑用于
a=t,b=t,c=f
etc?如果您需要根据所有三种状态执行不同的操作,我将为每个不同的操作执行一个策略,并通过开关或factory@KroaX这就是需要通过模式实现的切换。我会使用registry,一个从元组(bool,bool,bool)到处理程序的映射。@Misalevariable是的,就是这样。我只是简化了问题:有很多
a
对象,而不仅仅是8个对象,
a
相等方法不是由这三个字段决定的,因此,我需要确定某个
对象的字段组合,对其类型进行分类,然后执行一些操作;我甚至没有给出确切的方法:)基本思想是拥有一个处理程序接口和一个从某物到处理程序实例的映射。如果包含状态,则可以克隆处理程序。我只是简化了问题:有很多
a
对象,而不仅仅是8个对象,
a
equal
方法不是由这三个字段决定的,因此,我需要确定某个
对象的字段组合,对其类型进行分类,然后执行一些操作;我甚至没有给出确切的方法:)基本思想是拥有一个处理程序接口和一个从某物到处理程序实例的映射。如果包含状态,则可以克隆处理程序。