回答編集履歴

2

追記

2017/05/08 02:04

投稿

haru666
haru666

スコア1591

test CHANGED
@@ -24,6 +24,10 @@
24
24
 
25
25
 
26
26
 
27
+ ここからはより具体的にヒントの有用性について書きたいと思います。
28
+
29
+
30
+
27
31
  例えば、貴方はメモリ配列を圧縮するライブラリを作ったとします。
28
32
 
29
33
  デフォルトではOSにインストールされている圧縮ツールをバイパスしますが、オプションでより高速な圧縮ツールがインストールされていればそちらを使うことのできるように設計したとしましょう。
@@ -38,7 +42,7 @@
38
42
 
39
43
  このような場合、「より高速な圧縮ツールがインストールされていればそちらを使うように指示する」というヒントを持つオプションを実装できるでしょう。
40
44
 
41
- 愚直に「圧縮ツールの設定」というオプションを公開することもできますが、実装者が以下のようなプログラムを組むよりはずっ良いでしょう。
45
+ 愚直に「圧縮ツールの設定」というオプションを公開することもできますが、利用しやすいのはヒントを用いた実装と言えるでしょう。
42
46
 
43
47
  ```java
44
48
 

1

コードサンプルの追加

2017/05/08 02:04

投稿

haru666
haru666

スコア1591

test CHANGED
@@ -36,4 +36,36 @@
36
36
 
37
37
 
38
38
 
39
- このような場合、ライブラリに「より高速な圧縮ツールがインストールされていればそちらを使うように指示する」というヒントを持つオプションを実装できるでしょう。
39
+ このような場合、「より高速な圧縮ツールがインストールされていればそちらを使うように指示する」というヒントを持つオプションを実装できるでしょう。
40
+
41
+ 愚直に「圧縮ツールの設定」というオプションを公開することもできますが、実装者が以下のようなプログラムを組むよりはずっと良いでしょう。
42
+
43
+ ```java
44
+
45
+ // ヒントを用いない実装
46
+
47
+ if (lib.Has高速な圧縮ツール)
48
+
49
+ {
50
+
51
+ lib.高速圧縮(メモリ配列);
52
+
53
+ }
54
+
55
+ else
56
+
57
+ {
58
+
59
+ lib.圧縮(メモリ配列);
60
+
61
+ }
62
+
63
+
64
+
65
+ // ヒントを用いた実装
66
+
67
+ lib.set高速な圧縮ツールがあれば使う(true);
68
+
69
+ lib.圧縮(メモリ配列);
70
+
71
+ ```