https://github.com/tamada/triangle
https://github.com/tamada/triangle
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tamada/triangle
- Owner: tamada
- License: cc0-1.0
- Created: 2024-10-26T04:42:50.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-27T02:10:06.000Z (about 1 year ago)
- Last Synced: 2024-10-27T03:19:13.126Z (about 1 year ago)
- Language: Java
- Size: 25.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Triangle
[](https://github.com/tamada/triangle/blob/main/LICENSE)

## :speaking_head: Overview
三角形を材料として,オブジェクト指向のカプセル化を学ぶためのプロジェクトです.
### メソッド
getter/setter は必要ないということを表すため,種々のメソッドを提供します.
- `isEquilateral()`: この三角形が正三角形であるかどうかを判定します.
- `isRight()`: この三角形が直角三角形であるかどうかを判定します.
- `isObtuse()`: この三角形が鈍角三角形であるかどかを判定します.
- `isAcute()`: この三角形が鋭角三角形であるかどうかを判定します.
- `isIsosceles()`: この三角形が二等辺三角形であるかどうかを判定します.
- `isScalene()`: この三角形が不等辺三角形であるかどうかを判定します.
`Triangle` は,上記メソッドを提供します.
その代わりに,判定アルゴリズムを内部に持つことになり,クラスの肥大化につながります.
`Triangle2` は判定アルゴリズムを `Triangle2Utils` に分離させ,`Triangle2` はフィールドのみを持つようにしています.
一方,`Triangle2Utils`からは,直接フィールドにアクセスできません.
そのため,`Visitor` パターンを利用して,`Triangle2` のフィールドにアクセスします.
これにより,必要なフィールドのみを必要なときに取得できるようになります.