我目前正致力于项目(为了好玩),涉及模拟逻辑门。我有一个Connection.cs和一个Gate.cs,它是其他类的父类,比如Not,And,Or等。在我的Gate类中,我有一个抽象方法,它将最终完成输入和设置输出的工作。
public abstract class Gate : IConnectable {
private int[] inputs;
private int[] outputs;
protected Gate(int inputCount, int outputCount) {
inputs = new int[inputCount];
outputs = new int[outputCount];
}
...
public abstract void Evaluate();
}
public class Connection {
private IConnectable input;
private IConnectable output;
public Connection(IConnectable from, IConnectable to) {
input = from;
output = to;
}
}
最后,我试图找出一种简洁的方法,让Gate对象包含对其输入/输出连接的引用,并让连接知道" wire&#两端的内容是什么34 ;.有一个简单的方法吗?
答案 0 :(得分:0)
通常,您需要某种方式来表示图形。有很多方法可以做到这一点。
我认为这样的设计是一个起点:
interface IGate
{
bool Value { get; }
}
class And : IGate
{
public IGate X { get; private set; }
public IGate Y { get; private set; }
public bool Value
{
get
{
return X.Value && Y.Value;
}
}
public And(IGate x, IGate y)
{
X = x;
Y = y;
}
}
class Input : IGate
{
public bool Value { get; set; }
public Input(bool value)
{
Value = value;
}
}
一个例子是:
new And(new Input(true), new And(new Input(true), new Input(false))).Value
答案 1 :(得分:0)
我通常做这样的事情
public function addComment($id,$body,$solved)
{
$this->find($id)->status = 2;
$this->save();
$this->comments()->create([
'ticket_id' => $id,
'body' => $body,
'user_id' => auth()->id()
]);
}