Great explanation, Thanks a lot no wounder I been struggling how to get this right. I need both for Procedural Move/Fight. If I look at a pair of legs; Strategy is great for a higher level order, like choosing a leg for actions: "Move" , "Attack" , "Jump". Each of them have a different state execution order, and the states can be changed at any time decoupled from the present order. State Is need for deeper executions, like : InAir, Landing, OnSolidObject, TransferEnergy( return Vector3 AccelerateOrHit). This was supper usefull, thaks for comparing them, both in here and on the Strategy VIdeo too. I go and start Refactoring :)
It can help if you are a programmer in C or C++ to pretend the state classes are just function pointers (which really at the low level they are) and the state is just swapping around function pointers.
There are always multiple ways to implement the same logic, so of course anything will work and will lead to the desired results. However, in this case and in this example, making use of the abstract class reduces duplicate attributes leading to a cleaner solution in my opinion. Cheers :)
@@geekific I see ! thanks for the quick answer, im gona use ur design pattern playlist to try my best for my next coming exam :) thanks u for the clean videos
yes i felt the same,it is a violation of inteface segregation, but we can make it right by having different interfaces for common functions and uncommon functions
Not pretty clean as both the State class has an instance of Phone & Phone class also has an instance of state so unnecessary coupling. Better would be to pass an instance of Phone to each of the methods of state change in the State class.
best video about state pattern, keeping it short and simple
Thank you :) Much appreciated!
Outstanding example, thank you.
Thank God I found your channel
Quality Education
Very grateful to you.
Glad it was helpful! Thanks a lot :)
i understood EVERYTHING, thank you.
Very nice! Thank you!
Great explanation, Thanks a lot no wounder I been struggling how to get this right. I need both for Procedural Move/Fight. If I look at a pair of legs;
Strategy is great for a higher level order, like choosing a leg for actions: "Move" , "Attack" , "Jump". Each of them have a different state execution order, and the states can be changed at any time decoupled from the present order.
State Is need for deeper executions, like : InAir, Landing, OnSolidObject, TransferEnergy( return Vector3 AccelerateOrHit).
This was supper usefull, thaks for comparing them, both in here and on the Strategy VIdeo too. I go and start Refactoring :)
Way to go! Glad it was helpful and Good Luck :)
It can help if you are a programmer in C or C++ to pretend the state classes are just function pointers (which really at the low level they are) and the state is just swapping around function pointers.
explained it in a clear and understandable way, good contents
Glad it was helpful :)
Thanks Man, Really Good Job Keep up the good work!!!🤠
Amazing!
Great videos
can we use interface instead of abstract class???????
excellent content
Glad you liked it :)
Hello , do u think its possible to use interface instead of abstract class ? if yes which solution is better ?
There are always multiple ways to implement the same logic, so of course anything will work and will lead to the desired results. However, in this case and in this example, making use of the abstract class reduces duplicate attributes leading to a cleaner solution in my opinion. Cheers :)
@@geekific I see ! thanks for the quick answer, im gona use ur design pattern playlist to try my best for my next coming exam :) thanks u for the clean videos
@@genziobal7281 Good luck!
Hello, Could you please give one example of Persistence State Pattern
Hello, will add it to my list of upcoming videos! Stay Tuned!
ReadyState need to override onHome without using it, this is not anti pattern of Interface Segregation? A class that need a method that dont using?
yes i felt the same,it is a violation of inteface segregation, but we can make it right by having different interfaces for common functions and uncommon functions
Thanks for the vid! But one small correction: In the state, you dont use the Phone as a variable, but as a parameter
Anyone Know the intro music?
It's You Got Jazz by Diego Nava
Not pretty clean as both the State class has an instance of Phone & Phone class also has an instance of state so unnecessary coupling. Better would be to pass an instance of Phone to each of the methods of state change in the State class.
yes, i was thinking the same.
eXcellent’e
Many thanks!
Yung Lean?
nope :P
Smartphones don't have a home button anymore 😔