2017-10-22 3 views
0

私は、しっかりと結合していないシステムを作りたいと思うと、何度も独立しているのに役立ちますが、結束を傷つけることも経験しています。例:デパチの結果、凝集力が失われますか?

モデル:

$record = Doctrine::getById(1); 
// $record is now a bean: UserClass with getters 

ビュー:

<body> 
<?php echo $record->getName().'; '.$record->getId(); ?> 
</body> 

これは今、このビューがUserClassに結合されているので、悪いです。私は独立しているように、それをリファクタリングすることができます

モデル:

$record = Doctrine::getById(1); 
$name = $record->getName(); 
$id = $record->getId(); 

ビュー:

<body> 
<?php echo $name.'; '.$id; ?> 
</body> 

は今閲覧は独立して最大である - だけでなく、その結束を失います。最初の解決策では、データは1つの場所にあり(UserClass)、散在することはできません。私たちは簡単に紹介することができますが、$idは別のレコードからですが、$nameは別のものですか?

+0

を読みたいかもしれないと思います。あなたは '$ user-> name'または' $ user ['name'] 'を実行し、あなたのUserClassを使わずにcohersionを保ちます。しかし、DoctrineエンティティクラスはDoctrineシステムから実際には通常のクラスであることが分かります。彼らがいるなら、私は本当にそれらに依存する問題を見ません。 – JimL

答えて

1

ここで結束と呼ぶものを維持するには、継承、依存関係注入、工場などのパターンを使用するようにしてください。これらを使用すると、非常に高いレベルの結束性または可読性を維持しながら、より疎結合のシステムを作成できます。

私はあなたが規則的に配列/オブジェクトにユーザークラスを変換する教義に水分補給を使用することができますthis SO postthis article

関連する問題