设计模式?
干啥用的?能吃吗?
刚开始接触设计模式,我就是这样的感觉。完全不明白为啥要加这些。三层写的好好地,加着破玩意干啥。
直到,写出的代码越来越难改,自己看着都烦。
有啥好处?
代码越来越难改,说到底就是因为需求!!!需求越加越多,来回变,就会导致代码的庞大,难懂。
设计模式的出现,提高了代码的复用性,程序好修改,又好扩展添加。因为他有着自己的七大原则。
一、我只吃饭不刷碗!
我只负责吃饭,别叫我干别的事。刷碗别找我,收拾屋子别找我,干啥都别找我。
单一职责原则,一个类,他干的活只有一件事。如果一个类干活多了,这个类那天变心了,受影响的可就不止一个了。
二、别修,给我买新的!
不要修改我现在有的武器,你可以买更多武器给我。
开闭原则,一个实体(类,函数这些)。对扩展开放,对修改关闭。当有需求需要改变本身的时候,最好通过添加新的代码,来增强现有类型的行为。
可以提供一个固有的接口,然后所有可能发生变化的类实现该接口。比如提供一个手臂,在这个手臂的基础上加装加特林。突突突突突
三、儿啊,别动我的东西!
儿啊,老子留给你的产业,你可别给我动了啊。可不能让其他人用不了啊。
里氏替换原则,子类不要轻易修改父类的方法,当子类替换掉父类的时候,程序的调用、行为必须是一样的。子类替换父类,照样能用,那么父类才是真正的复用,但子类可以在父类基础上添加新的行为。
儿子别动老子的遗产,想玩新花招,自己想着奔去。
四、我能做,别管我怎么做!
我能治感冒,具体治疗流程都是按照治感冒来的。
依赖倒置原则,抽象不应该依赖于细节,细节应该依赖于抽象。高层次的模块,不应该依赖于低层次的模块。
病毒性感冒,普通感冒。都属于感冒,病毒性感冒不应该依赖普通感冒的治疗流程。应依赖感冒这个总的治疗流程。
五、只吃饭不刷碗,发扬光大!
我只吃饭不刷碗,我得把这项壮举告诉所有人。
接口隔离原则,跟单一职责类似。只使用专门多个的接口,比就使用一个接口要好。不要让接口负责太多。把职责更好的分离,到不同的接口上。
只吃饭传出去也是只吃饭。不刷碗。
六、变形金刚是拼起来的!
三个变形金刚,可以拼成一个大。我们尽量玩这个大的。
合成复用原则,一个新的对象里面使用一些已有的对象,让他变成新对象的一部分。尽量使用合成,而不使用继承。
圆形,方形都属于图形,那么他们是继承。CPU,内存可以组装成电脑,那么他们是合成。
七、好奇害死猫!
我就知道我自己办的事就行了,其他人的事。我不想知道。
迪米特法则,一个对象应当对其他的对象尽可能少的了解。一个对象尽量少的与其他对象所接触,这样互相独立,修改模块的时候就会更加容易。
不要跟”陌生人“说话。
以上
是设计模式的七大主要原则:单一职责原则,开闭原则,里氏替换原则,依赖倒置原则,接口隔离原则,合成复用原则,迪米特法则。程序开发中应尽量按照这些模式进行开发,这样代码会更容易维护。
其中又分为:创建性(6种),结构型(7种),行为型(11种)。这24种模式。
往后我会一一举例。by~