C#を使用してOOPに代わるメインストリームプログラミング手法はありますか?


8

プログラミング言語に関する限り、私はC#が大好きです。それは、.NETフレームワーク(LINQなど)からもたらされるすべての利点です。

私の主な懸念は、私はコードを大量に作り出しているようであり、OOPを使用することで、私のコードが必ずしも管理しにくいと心配しています。

C#と.Netを引き続き使用したいのですが、言語を適用してコード全体を減らし、テキストブックのOOPに比べて管理が容易になる他のアプローチはありますか?

前もって感謝します!

回答:


11

はい-同じ問題が見つかりました。OOPはすべての問題を解決する最良の方法ではありません。ただし、C#は機能的なパラダイムを非常によくサポートしており、現在いくつかのプロジェクトで正常に使用しています。

簡略化に関してここで興味深い話があり、少なくとも思考の糧になるはずです:http : //skillsmatter.com/podcast/design-architecture/simple-is-better


1

実験したい場合は、ここここのようにAOP / C#を試してください。PDFには長所と短所に関する詳細なシートがあります。



0

さまざまな方法論に迷い込む前に、リファクタリングを利用してコードを簡略化および統合してください。これは、Fowlerのカタログである「リファクタリングのアルファリスト」です。これらはそれぞれ、C#コードの改善と管理に役立ちます。

再利用のために効果的に設計する方法を学び、標準のオブジェクト指向の方法論内に存在するインターフェース、抽象クラス、クラス階層、依存性注入、および同様のツールのアプリケーションを最適化することにより、希望の結果を達成するための方法を見つけることができます。 。

さらに、@ Chris Smithは、C#の新しいバージョン(3.5および4.0)に、コードをロックするのに役立ついくつかの関数型プログラミング機能が追加されているという事実をすでに指摘しています。

関数型プログラミングが好きな場合は、Microsoftの新しいF#言語を試してみてください。実際には、2つの方法論を組み合わせた「オブジェクト機能」に似ています。同じ.NETソリューションでF#とC#を混在させることもできます

私はまた、AOPが確かにその用途を持っているという他のコメンテーターにも同意します!


0

OOPSにより多くのコードが発生した可能性がありますが、アプリケーションが大きい場合、OOPSによってもたらされる複雑さの低減により、保守可能で管理可能なコードと明確さがもたらされます。これが事実ではなく、負担として感じた場合は、不適切に使用した可能性があります。クラスがドメインオブジェクトを適切に表現しているかどうか、およびクラスオブジェクト間の通信が、プログラムでシミュレートしようとする実際のシステムでどのように発生しているかを確認してください。

C#では、コードが多すぎても、OOPS IMHOから移行する現実的な理由にはなりません。パラダイムシフトは、実際にはもっと有効な理由があるはずです。

C#で「構造化プログラミング」を行うことはできますが、時間と労力の無駄になると思います。主流の代替案のほとんどは、OOPSも利用しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.