首页 > 其他 > 详细

设计原则

时间:2016-03-22 12:03:37      阅读:169      评论:0      收藏:0      [点我收藏+]

单一职责: 一个类中的属性和方法要有很高的相关性,不然就拆开;如果一个类很庞大,则需要进一步细分职能,把相关性更高的归到一块;

开闭原则:对扩展开放,对修改关闭;极端要求就是:程序完成后,除非是修改错误,不然不能修改代码,只能扩展代码;比如一个功能,有多种实现方法,即有多个类型,不要用if-else这种分支在一个类中去指定其类型,而是对接口编程,通过继承,把实现透明化,每增加一个类型就增加一个类。
想这么一个问题,每增加一个类型的时候,是修改原类添加一个else分支好还是实现一个新的与老代码无关的新类好?

下面这种实现就是对修改开放的结果,每次要增加一个类型,都得修改原有代码,导致原有系统可能被引入bug,需要被重新测试:

class Demo {

        public static final int TYPE_A = 1;
        public static final int TYPE_B = 2;
        public static final int TYPE_C = 3;


        public Demo(int type) {
            if(type == 1) {
                //act as TYPE_A
            }
            if(type == 2) {
                //act as TYPE_B
            }
            if(type ==3) {
                //act as TYPE_C
            }
        }
    }

 

下面这种情况就是对修改关闭,通过对接口变成对扩张开放,新增一个类型不用修改原有代码:

    interface Type {

    }

    class Demo2 {
        private Type mType = null;

        public Demo2() {
        }

        public void setType(Type type) {
            mType = type;//act like what you assigned.
        }
    }

    class TypeA implements Type {

    }
    

 

设计原则

原文:http://www.cnblogs.com/mosthink/p/5305525.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!