最近学习设计模式,对于我只有几个月工作经验的菜鸟来讲,真的是很吃力。吃力的原因不是看不懂书中所写的设计模式代码,而是就是知道这样设计模式,我怎样才能在现实工作中使用它,所以感觉很困惑。
就拿代理模式来讲吧,一共有三个角色,一个代理角色,一个真实角色,一个是前两者的共同接口角色。代理角色是拥有真实角色的引用,并且可以在调用真实角色的前后做一些访问控制等工作。真实角色也就是真正的实现我们想要做事情的角色,我们只能通过代理角色来访问它。共同接口角色,有了它,我们就可以通过代理访问真实角色行为,像真实访问真实角色一样。
使用代理角色好处有,让真实角色做自己应该做的事情,一些访问控制等事情,可以交给代理角色处理,这样符合OO的SRP原则。当代理角色和真实角色实现相同接口代理的好处,这样客户端通过代理角色访问,就像真实访问真实角色一样。针对接口编程,一旦代理对象实现有变,也不会影响到客户端的代码,符合面向对象编程原则。
这些原理通过书本都能明白。哎,现在难就难在遇到问题,怎么样才能想到用这种设计模式去解决问题。
就拿代理模式来讲吧,一共有三个角色,一个代理角色,一个真实角色,一个是前两者的共同接口角色。代理角色是拥有真实角色的引用,并且可以在调用真实角色的前后做一些访问控制等工作。真实角色也就是真正的实现我们想要做事情的角色,我们只能通过代理角色来访问它。共同接口角色,有了它,我们就可以通过代理访问真实角色行为,像真实访问真实角色一样。
使用代理角色好处有,让真实角色做自己应该做的事情,一些访问控制等事情,可以交给代理角色处理,这样符合OO的SRP原则。当代理角色和真实角色实现相同接口代理的好处,这样客户端通过代理角色访问,就像真实访问真实角色一样。针对接口编程,一旦代理对象实现有变,也不会影响到客户端的代码,符合面向对象编程原则。
这些原理通过书本都能明白。哎,现在难就难在遇到问题,怎么样才能想到用这种设计模式去解决问题。