[问题] 关于Open Close Principle的疑问

楼主: erttyy8821 (侠)   2014-12-25 11:04:51
关于Open Close Principle 这个原则
我只大概明白是借由一个abstract来当中间的桥梁
再需求变更的时候可以不破坏原来的架构并加入新的功能
但是一直不是很明白怎么实作
今天找到了一个网站的example
http://www.oodesign.com/open-close-principle.html
我想问 Good example中
虽然我们不必因为新增一个新Shape就要在main中多开一个function
但我如果想draw不同的形状
也是需要先判断需求 然后再new所需的object assign进去
但这样对于OCP所期望的保有弹性不是有限嘛?
还是我对于OCP的实作理解有错误?
以下是我针对good sample改写完之后的想法
还望版上的先进针对我的盲点可以提点一下
感谢
// Open-Close Principle - Good example
public class main
{
public main()
{
if(need draw circle)
drawShape(new Circle()); <
作者: swpoker (swpoker)   2014-12-25 12:22:00
就是要把可怕的if去掉拉范例只有if else还感受不到可怕,实际是if(){if(){if(){..如何实作回归到各shape本身,程式只需呼叫适当的类别及可
楼主: erttyy8821 (侠)   2014-12-25 16:31:00
OK 感谢 :)

Links booklink

Contact Us: admin [ a t ] ucptt.com