软件设计模式
2023-03-03 22:52:40 0 举报
软件设计模式总结和剖析
作者其他创作
大纲/内容
目的:提高复用性、扩展性、维护性和灵活性。
剖析:其实是抽象的颗粒度问题,抽象到何种程度,才能保证软件设计的原则,则需要结合实际的业务场景来评判的;并不是抽象越细越好,过细的抽象,虽然提高了复用性、灵活性和扩展性,但在维护性方面可能会有一定的牺牲(具体场景没想到,凭直觉);如果从企业经营的角度看,抽象是需要大量实践,才能总结出来的共性,对设计人的业务能力要求比较高;如果不熟悉业务的情况下,谈抽象可能会脱离实际,导致天上飞的理念无法落地实现。
剖析:将不变的特性(属性和行为)封装起来,将容易改变的留给外部提供;如果你不确定该特性是否容易改变时,建议你把它当成可变的。
开闭原则:对扩展开放,对修改关闭。
案例:你不能将人类抽象为黑头发、棕色眼睛,黄皮肤;因为它不适用于黑人和白人;当然你可以称之为黄种人,这是合理的。
里氏代换原则:基类可以出现的地方,子类一定可以出现。
剖析:保证扩展性、维护性和灵活性。
案例:企业你可以依赖某个岗位的职能,但是却不能过于依赖某人的职能。
依赖倒转原则:依赖抽象,不依赖具体实现。
剖析:其实还是共性的抽象问题,如果粒度不够小就会导致复用性差。
案例:。。。
接口隔离原则:一个类依赖另外一个类,应该建立在最小接口的原则上。
剖析:实质上是尽可能的单一职责,为了提高可复用性和灵活性。
迪米特法则:最少知识原则。
剖析:因为组合或者聚合等关联关系比继承扩展新和灵活性更强。
合成复用原则:尽可能使用组合或者聚合等关联关系来达到复用性,其次才考虑所以用继承关系来实现。
种类
软件设计原则
单例
工厂方法
抽象工厂
原型
建造者
创建型:总共5种
代理对象
适配器
装饰者
桥接
外观
组合
享元
结构型:总共7种
模板方法
策略
命令
责任链
状态
观察者
中介者
迭代器
访问者
备忘录
解释器
行为型:总共11种
设计模式类型:总共23种
软件设计模式
0 条评论
下一页