《设计模式之禅》

设计模式之禅

单一职责原则

定义:应该有且仅有一个原因引起类的变化。

接口,类,方法:一个方法只做一件事。我们建议接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化(只有一个接口?)

接口的设计要有限度,颗粒度要符合项目。

里氏替换原则

定义:所有引用基类的地方必须能透明的使用子类的对象。(多态:父类能出现的地方子类就可以出现,并且可以替换为子类)

目的:是为了防止子类覆盖父类的方法,如果要覆盖,为什么要继承。子类可以扩展父类的方法的接收范围,但是不能改变父类的功能。

要求我们符合规范:1子类必须完全实现父类的方法(接口和抽象类) 2子类可以有自己的其他方法和属性 3实现和覆盖父类的方法时输入的参数可以被放大(方法的重载:其他一样,方法的参数不一样,这个参数是放大的,不然父类存在的地方,子类不一定可以存在,违背里氏替换原则) 4实现和覆盖父类的方法的结果可以被缩小(返回值类型父类大于子类:是继承关系)

依赖倒置原则

定义:模块之间的依赖通过接口和抽象类发生,实现类不直接发生依赖关系。接口和抽象类不依赖实现类。实现类依赖接口和抽象类。-面向接口编程。

面向接口编程:使我们的项目可以不用是单线程的编程,而实现的是并行编程。(两个类有依赖关系,只要制定出接口或者抽象类,通过多态,这两个类就可以独立的开发和测试)

接口和抽象类:是一种契约和约束。

三种实体类间的依赖传递:1通过构造函数 2setter方法 3接口中直接定义

接口隔离原则

实例接口:Person p=new Person(); 类接口:interface

定义:客户端不应该依赖它不需要的接口,类之间的依赖关系应该建立在最小的接口上。

根据我们项目的实际需要设计最小接口,接口内不要太多的杂糅。

规范约束:1 接口尽量小(单一职责原则) 2 接口高内聚()3 定制服务 4 接口的设计符合项目,要有限度颗粒

迪米特法则

定义:最小知识原则:一个对象应该对其他对象有最少的了解。

组合,聚合,依赖:都是耦合关系。 朋友类:成员变量,方法中的输入输出参数中的类。

所以迪米特法则的我们的一个类只和朋友类交流,但是不和陌生类交流。

朋友间的距离:不应该暴露太多东西给朋友,我们能封装就封装。尽量减少public成员变量和方法。

总结:类间解耦,弱耦合。0 1 就是完全解耦。

开闭原则

什么是开闭原则:软件实体(类,模块,方法)对扩展开放,对修改关闭。通过使用扩展实体的行为来实现变化,而不是通过修改代码实现变化。

为什么要使用开闭原则: 采用开闭原则才能更好的通过测试,代码复用性,可维护性,面向我们开发的需求。

怎么使用开闭原则:抽象约束:接口和抽象类的扩展边界(接口中的方法),尽量使用的是接口和抽像类,而不是实现类,抽象层不能修改。元数据控制模块行为:框架配置我们需要的数据。指定项目章程:项目的团队的大家遵守某个协议。封装变化:将相同的变化的封装到接口和抽象类,将不同变化的封装到不同的接口和抽象类。

单例模式

工厂模式

模板方发模式

建造者模式

代理模式

原型模式

中介者模式

命令模式

责任链模式

装饰模式

策略模式

适配器模式

迭代器模式

组合模式

观察者模式

门面模式

备忘录模式

访问者模式

状态模式

解释器模式

享元模式

桥梁模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值