質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

4回答

840閲覧

範囲を表すクラス名について

komatta

総合スコア7

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2018/01/16 07:58

編集2018/01/16 09:32

###前提・実現したいこと
二つの範囲を表すクラスがあり、名付けに困っています。

一つ目のクラスは、最大の値を示す max と最小の値を示す min というプロパティを持っています。
max は min よりも大きくなくてはいけません。

二つ目のクラスは、最初の値を示す first と最後の値を示す last というプロパティを持っています。
first は last よりも大きくても構いません。

どちらも特定の範囲を表すクラスですが若干違いがあります。
皆さんならどんなクラス名にしますか?

###補足1
二つのクラスは次のように動作します。

js

1// 一つ目のクラス 2const percent = new Range({ 3 max: 100, 4 min: 0, 5}) 6percent.add(50) // 50 7percent.add(50) // 100 8percent.add(50) // 100 より大きくはならない

js

1// 二つ目のクラス 2const downCounter = new Range({ 3 first: 10, 4 last: 0, 5}) 6downCounter.next(1) // 9 7downCounter.next(1) // 8 8downCounter.next(1) // 7 9 10const upCounter = new Range({ 11 first: 0, 12 last: 10, 13}) 14upCounter.next(1) // 1 15upCounter.next(1) // 2 16upCounter.next(1) // 3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

himakuma

2018/01/16 08:36

その二つは対象としている情報元は同じなのですか?
komatta

2018/01/16 09:35

いいえ、違います。max, min は大きさ、first, last は時間なんかに使います。
guest

回答4

0

主旨とは違いうと思いますが、
個人的には、加算、減算の処理でしかないので、
複数のクラスに分けないで下記のようにするのが良い気がします。

JavaScript

1const calculator = new Calculator({ 2 min: 0, 3 max: 100, 4 start:50, 5 type: 'int' // デフォルトは数字 6}); 7calculator.add(25); // 75 8calculator.down(1); // 74 9calculator.up(1); // 75 10 11const calculator = new Calculator({ 12 min: '2010/01/01 00:00:00', 13 max: '2050/12/31 23:59:59', 14 start:'2018/01/16 10:10:10', 15 type: 'date' // デフォルトは数字 16}); 17calculator.add({ 18 year:1, 19 month:2, 20 day:3, 21 hour:4, 22 minute:5, 23 second:6 24}); // 2019/03/19 14:15:16 25 26calculator.down({ 27 year:1, 28 month:2, 29 day:3, 30 hour:4, 31 minute:5, 32 second:6 33}); // 2018/01/16 10:10:10 34 35calculator.up({ 36 year:1, 37 month:2, 38 day:3, 39 hour:4, 40 minute:5, 41 second:6 42}); // 2016/11/13 06:05:04 43

投稿2018/01/16 10:09

himakuma

総合スコア952

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

komatta

2018/01/16 10:59

なるほど、ひとつのクラスで表現してもいいかもしれませんね。 大変参考になりました。
guest

0

ベストアンサー

SizeRange
OrderRange

投稿2018/01/16 08:01

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

komatta

2018/01/16 10:59

一番しっくりきたのでベストアンサーに選びました。 回答ありがとうございます。
guest

0

前者がRange(範囲)
後者がSequence(数値の列)
ですかね。

投稿2018/01/16 09:44

masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

minとmax: Range
firstとlast: DirectedRange (向きを含むので)

投稿2018/01/16 08:29

karamarimo

総合スコア2551

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問