第8章
9284 ワード
モバイル機能
8.1移動関数
モジュール化:相互に関連するものを集約します.モジュール化の度合いが高い場合は、機能の変更を試みる際に、他の機能を理解できなくすることができます.そして水晶は一つの場所でしか起こらない.
すべての関数はコンテキストに存在し、多くは特定のモジュールに属します.カプセル化するためには,関数が参照する場所の多いモジュールに関数を移すことが望ましい.また、呼び出し元の現在位置または次の更新時に変更される可能性のある位置に基づいて関数を移動する必要がある場合もあります.
プログラム
// before
function trackSummary(points) {
const totalTime = calculateTime();
const totalDistance = calculateDistance();
const pace = totalTime / 60 / totalDistance;
return {
time: totalTime,
distance: totalDistance,
pace: pace
};
function calculateDistance() {
let result = 0;
for (let i = 1; i < points.length; i++) {
result += distance(points[i-1], points[i]);
}
return result;
}
function distance(p1, p2) { ... }
function radians(degrees) { ... }
function calculateTime() { ... }
}
// after
function trackSummary(points) {
const totalTime = calculateTime();
const pace = totalTime / 60 / totalDistance(points);
return {
time: totalTime,
distance: totalDistance(points),
pace: pace
};
}
function totalDistance(points) {
let result = 0;
for (let i = 1; i < points.length; i++) {
result += distance(points[i-1], points[i]);
}
return result;
}
function distance(p1, p2) { ... }
function radians(degrees) { ... }
function calculateTime() { ... }
8.2フィールドの移動
8.3文を関数に移動
8.4文を呼び出し位置に移動する
Reference
Reference
この問題について(第8章), 我々は、より多くの情報をここで見つけました https://velog.io/@jhcho/리팩터링-8장テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol