RoleAssigner類的理解疑惑
,這裡面機器人的例子還好理解,
public String hello(String id) {
Robot robot = robotRepository.find(id);
//將角色智慧機器人IntelligentRole的行為注入到Robot資料物件中
IntelligentRole intelligentRobot = (IntelligentRole) roleAssigner.assign(robot, new IntelligentRobot());
//得到一個混和robot將具有聽 看 感覺等能力行為
return "Hello, " + intelligentRobot.hear();
}
把智慧的屬性附加到之前的robot上,roleAssigner名副其實就是角色助手的作用。不過還不夠徹底,因為不能將intelligentRobot向下轉型為Robot,即(Robot)intelligentRobot來呼叫Robot的方法。
再看SimpleJdonFrameworkTest專案,ResourceManagerContext類裡面的update方法
@Path("/user")
@PUT
public Represent update(UserModel user) {
UserModel userold = getUser(user.getUserId());
if (userold == null)
return new State("/");
userold.update(user);
// here is for client's load
ComputeContext computeContext = new ComputeContext();
computeContext.preloadData(userold);
RepositoryManagerIF rm = (RepositoryManagerIF) roleAssigner.assign(userold, new RepositoryManagerEventImp());
rm.remember(userold);
return new State("/");
}
其中的
RepositoryManagerIF rm = (RepositoryManagerIF) roleAssigner.assign(userold, new RepositoryManagerEventImp());
rm.remember(userold);
是將角色RepositoryManagerEventImp,賦予userold,但為何在remember中又要講userold作為引數呢。
按理說應該直接rm.remember就好了呀。如果說像程式碼中的寫法完全可以繞開roleAssigner,直接new一個RepositoryManagerEventImp不就完了麼?
這樣的寫法是否是由於物件導向的技術限制呢?
public String hello(String id) {
Robot robot = robotRepository.find(id);
//將角色智慧機器人IntelligentRole的行為注入到Robot資料物件中
IntelligentRole intelligentRobot = (IntelligentRole) roleAssigner.assign(robot, new IntelligentRobot());
//得到一個混和robot將具有聽 看 感覺等能力行為
return "Hello, " + intelligentRobot.hear();
}
把智慧的屬性附加到之前的robot上,roleAssigner名副其實就是角色助手的作用。不過還不夠徹底,因為不能將intelligentRobot向下轉型為Robot,即(Robot)intelligentRobot來呼叫Robot的方法。
再看SimpleJdonFrameworkTest專案,ResourceManagerContext類裡面的update方法
@Path("/user")
@PUT
public Represent update(UserModel user) {
UserModel userold = getUser(user.getUserId());
if (userold == null)
return new State("/");
userold.update(user);
// here is for client's load
ComputeContext computeContext = new ComputeContext();
computeContext.preloadData(userold);
RepositoryManagerIF rm = (RepositoryManagerIF) roleAssigner.assign(userold, new RepositoryManagerEventImp());
rm.remember(userold);
return new State("/");
}
其中的
RepositoryManagerIF rm = (RepositoryManagerIF) roleAssigner.assign(userold, new RepositoryManagerEventImp());
rm.remember(userold);
是將角色RepositoryManagerEventImp,賦予userold,但為何在remember中又要講userold作為引數呢。
按理說應該直接rm.remember就好了呀。如果說像程式碼中的寫法完全可以繞開roleAssigner,直接new一個RepositoryManagerEventImp不就完了麼?
這樣的寫法是否是由於物件導向的技術限制呢?
相關文章
- 關於值物件的理解,疑惑物件
- 記錄 http2 四個難以理解的疑惑點HTTP
- JUnit的疑惑
- java內部類的理解Java
- js關於this的疑惑JS
- java 初學者的疑惑!!!Java
- java初學者的疑惑Java
- 對Repository的疑惑
- 初學Java的疑惑Java
- Java的抽象類與介面理解Java抽象
- 理解Python中的元類Python
- 理解Javascript中類的定義JavaScript
- Python 類屬性的理解Python
- Loader類理解
- 類管理解析
- svg 使用中的疑惑點SVG
- oracle rac failover的疑惑OracleAI
- Laravel Vue 前後端分類模組化外掛化開發疑惑LaravelVue後端
- 有關連線池的疑惑。
- 連線資料庫的疑惑資料庫
- 關於struts開發的疑惑
- 個人學習jdon框架的疑惑!框架
- iBatis中對映的疑惑BAT
- nosql實體的疑惑,請指教SQL
- 關於組合模式的疑惑模式
- Proxy模式:copy-on-write的疑惑模式
- Docker拉取映象時的疑惑Docker
- 匿名內部類理解
- A tour of Go例程疑惑Go
- 如何理解Python3中的子類和父類?Python
- java中多型的理解——父類引用指向子類物件Java多型物件
- C#中的擴充套件類的理解C#套件
- java介面和抽象類的簡單理解Java抽象
- 深入理解JavaScript中的類繼承JavaScript繼承
- AI 能理解人類的情緒嗎?AI
- 深入理解Java的介面和抽象類Java抽象
- 對於Objective-C新建類的理解Object
- 對於domain model的包名的疑惑AI