私はステップバイステップで処理する必要のあるコードを作成したいと思います。 手続き型プログラミングを考えてコードするのは簡単です。 しかし、OOPを使ってコードを作成するのは簡単ではありません。C++シーケンシャルロジックに適したデザイン
例
class AutoCoder
{
public:
CommitCode();
private:
DownloadSourceCode();
DecideHowToModify();
WriteTestCode();
DoModify();
PerformmTest();
RefineCode();
Upload();
}
にとっての問題は、方法は、順次に呼び出される必要があることであり、また、各ステップが失敗したとき 壊れるべきです。この良く、Iしかし、このような
DownloadSourceCode()
.DeicdeHowToModify()
.WriteTestCode()
....
それとも
DownloadSourceCode()
{
...
return DecideHowToModify();
}
DecideHowToModify()
{
...
return WriteTestCode();
}
を作るために
bool AutoCoder::CommitCode()
{
if (false == DownloadSourceCode())
{
return false;
}
if (false == DecideHowToModify())
{
return false;
}
if (false == WriteTestCode())
{
return false;
}
//...so on
}
にしかし、これらは別の使用のためのデザインパターンの不適切な使用やコード作るコードごみですユーザーが正しく使用することを制限することはできません。
もっと洗練されたコードを表示して、それがより良い理由を教えてくれる人はいますか?それではそのようにそれを行うこの良く、Iしかし、このような
DownloadSourceCode()
.DeicdeHowToModify()
.WriteTestCode()
を作るために
オリジナルの方法は何ですか?あらゆるステップで何がやっているのかははっきりしています。 – Steve
実際のコードを入力してください。あなたの 'CommitCode()'が戻り値の型を欠いているだけでなく、パラメータも取らないので、ここであなたが解決しようとしている問題は完全にはっきりしません。 – user463035818
古代神話とは対照的に、OOP自体は聖杯ではありません。あなたが問題があり、それが手続き的アプローチによって解決されたほうが良いと思うなら、それには何も問題はないでしょう(おそらくあなたはOOPの天国に達することはありませんが、誰が気にしますか?) – user463035818