LSP里氏替换
2018-07-04 本文已影响0人
junjun2018
所有父类出现的地方,都应该可以用子类来代替而不影响逻辑!
低耦合
步枪手枪(子类)都可以射击(抽象方法),战士依赖枪(父类)进行杀敌(传入Gun),如果此时用不能射击杀敌的玩具枪替换Gun,则会逻辑错误!违背里氏替换原则。
正确的方式,则是把Gun改写成WeaponGun,这样可以射击杀敌的枪便可以随时替换掉父类,符合LSP原则
所有父类出现的地方,都应该可以用子类来代替而不影响逻辑!
低耦合
步枪手枪(子类)都可以射击(抽象方法),战士依赖枪(父类)进行杀敌(传入Gun),如果此时用不能射击杀敌的玩具枪替换Gun,则会逻辑错误!违背里氏替换原则。
正确的方式,则是把Gun改写成WeaponGun,这样可以射击杀敌的枪便可以随时替换掉父类,符合LSP原则