問題タブ [abstraction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 抽象列挙選択ボックス
列挙型を取り、可能なすべての選択をユーザーに表示し、ユーザーに選択させてから戻すことができる関数を作成しようとしています。ジェネリックでは、列挙型に制限することはできません。前後にキャストするコードが動作していますが、同じ列挙型を受け入れて返すようにしたいと考えています。
このコードは機能しますが、私が望むほどではありません:
Public Function getEnumSelection (ByVal owner As Windows.Forms.IWin32Window, ByVal sampleValue As [Enum], ByVal subtitle As String) As String
実行後、呼び出し元で [Enum].parse を直接列挙型にアクセスできるため、列挙型に直接アクセスできますが、この手動の手順を排除したいと思います。
同じ列挙型を返すことができるようにしたい、または少なくともこの関数で受け取ってキャストしたときに値に解析を戻すことができるようにしたいのですが、この行は許可されていないようです。Dim result As Object = [Enum].Parse(GetType(sampleValue), mInput.ListBox1.SelectedItem.ToString, True)
sampleValue は型ではありません。では、解析する sampleValue の型を取得するにはどうすればよいでしょうか。
または、列挙型ごとにマッピング関数を手作業でコーディングせずに、ユーザーが列挙型の値を簡単かつ一般的に選択できるようにする別の方法はありますか?
domain-driven-design - すべての「バルク」操作はDDDのどこに属しますか?
DDDの重要な概念の1つはリポジトリです。これにより、エンティティ(または集約ルート)を取得し、更新後に保存して戻すことができます。
エンティティを使用して「バルク」操作を実行する必要があり、エンティティの数によってそれらをメモリに取得することが絶対に不可能であると仮定します。つまり、操作はデータベースでのみ実行できます。
そのような「バルク」操作の場所はどこにありますか?それはリポジトリ上のメソッドである必要がありますか?データベース固有の操作でリポジトリの抽象化を「リーク」しませんか?事業運営をエンティティからリポジトリに移しませんか?
file - 人間が読める形式のファイル形式を使用する必要があるのはなぜですか?
バイナリ形式ではなく、人間が読める形式のファイル形式を使用する必要があるのはなぜですか?そうでない状況はありますか?
編集:私は最初に質問を投稿したときに説明としてこれを持っていましたが、今はそれほど関連性がありません:
この質問に答えるとき、人間が読める形式のファイル形式を使用することがなぜ良い考えであるかについて、質問者に標準のSO回答を紹介したいと思いました。それから私はそれを探しました、そしてそれを見つけることができませんでした。だからここに質問があります
html - 「HTML の抽象化」に関する良い記事を教えてくれる人はいますか?
私は現在、多くの重複する HTML コードを含む従来の e コマース システムのフロント エンドに取り組んでいます。
私は、類似したクラス間の類似性を共有抽象基本クラスに移動するときとほぼ同じように、複雑さを抽象化する方法を見つけようとしています。
IE「変化を取り出して抽象化する」
以前はこれを行うために Tiles などの Java フレームワークを使用していましたが、現在は Webby を使用しています。
また、以前に HTML を抽象化したとき、コードをゼロから作成し、MVC フレームワークを使用していたので、これで作業が少し楽になりました (diff と比較する必要はありませんでした)。
私が説明していることを表す別の用語や、この目的のための既存の HTML コードの抽象化に関する優れた記事を知っている人はいますか?
language-agnostic - 情報隠蔽による効果的なカプセル化の素晴らしい例は?
「抽象化とカプセル化は補完的な概念です。抽象化は、オブジェクトの観察可能な動作に焦点を当てています...カプセル化は、この動作を引き起こす実装に焦点を当てています...カプセル化は、ほとんどの場合、すべてを隠すプロセスである情報隠蔽によって達成されます本質的な特性に寄与しないオブジェクトの秘密の。」-オブジェクト指向の分析と設計におけるGrady Booch
情報を隠すことによるカプセル化の利点について、説得力のある例をいくつか教えていただけますか?
java - インターフェイスが抽象クラスよりも好まれるのはなぜですか?
私は最近インタビューに出席し、「なぜインターフェイスが抽象クラスよりも好まれるのか?」という質問をされました。
私は次のようないくつかの答えを出そうとしました:
- Extends 機能を 1 つだけ取得できます
- それらは 100% 抽象的です
- 実装はハードコーディングされていません
彼らは、あなたが使用している JDBC API のいずれかを取るように私に求めました。「なぜそれらはインターフェイスなのですか?」.
これについてより良い答えを得ることができますか?
generics - ハードコーディングとジェネリックコーディング:どこに線を引くか?
言い方がよくわかりませんが、やってみます。
プログラムの一部に設定があり、80%は二度と変更する必要がないと確信しているとします。変更可能なコードのどこに線を引くかをどうやって知るのですか?設定をユーザー定義のXMLファイルに完全に反映させるのはやり過ぎです。ただし、これらの設定を後で変更する必要がある可能性がわずか20%あることもわかっているため、ゴムが道路に接する場所でコーディングすることも最適ではありません。
私が尋ねようとしているのは、抽象化ツリーのどこまでプログラムを簡単に変更できるようにするべきかということだと思います。
多くの例の1つは、WebサイトのHTMLコードを手動で作成するのではなく、プログラムで自動的に生成することです。HTMLコードを直接書くのにそれほど時間はかかりません。HTMLコードを自動的に生成するプログラムを作成すると、はるかに時間がかかります。
c++ - C ++でインライン化可能な相互抽象化をコーディングする方法は?
最初の例:
この例では、MyHashingSolutionをStateクラスに渡して、StateがHashingSolutionのメソッドにアクセスできるようにすることができますが、HashingSolutionはGetStateを呼び出すことができません。これを回避することは可能ですか?
これは最も深いループにあります。ここでの仮想関数は、パフォーマンスを25%以上低下させます。インライン化は私にとって非常に重要です。
.net - System.Web.Abstractions: 何の役に立つの?
... 何もない?
ASP.NET WebFormsとASP.NET MVCそれぞれについて、パズルのどの部分を埋めるのでしょうか?
System.Web.Abstractions を使用する ASP.NET * ベース アプリケーションを作成して、両方の種類の ASP.NET Web アプリケーションで使用できるようにすることはできますか?
その場合、System.Web.Abstractions のクラスを ASP.NET WebForms にどのように後付けしたのでしょうか?
名前空間からオブジェクトを新しく作成することはできないので、モックには使用できませんね。
更新: HttpContext およびその他の構築済み ASP.NET オブジェクトのテストに関する問題を認識していることを明確にしておらず申し訳ありません。しかし、とにかく良い説明をありがとう。