私はhttp://www.oodesign.com/flyweight-pattern-wargame-example-java-sourcecode.htmlSOLDIER
で Flyweight サンプル コードを調べていて、静的インスタンス (上記のサイトのように) を割り当てると実際にどのように機能するのか疑問に思いました) で非静的な兵士のインスタンスに変換するSoldierClient
と、オブジェクトのサイズを実際に縮小できSoldierClient
ますか?SOLDIER
SoldierClient
編集:
それが言う方法moveSoldier()
では
// 前の場所から兵士の表現を削除します
// その後、新しい場所で兵士の表現をレンダリングします
これがクラスで作成されたすべてのオブジェクトに影響しないのはなぜですかWarGame
package flyweight;
public class SoldierImp implements Soldier {
/**
* Intrinsic State maintained by flyweight implementation
* Solider Shape ( graphical represetation)
* how to display the soldier is up to the flyweight implementation
*/
private Object soldierGraphicalRepresentation;
/**
* Note that this method accepts soldier location
* Soldier Location is Extrinsic and no reference to previous location
* or new location is maintained inside the flyweight implementation
*/
public void moveSoldier(int previousLocationX, int previousLocationY,
int newLocationX, int newLocationY) {
// delete soldier representation from previous location
// then render soldier representation in new location
}