基础

设计模式

1.         Alexander给出的模式经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地使用那些已有的解决方案,无需再重复相同的工作。

2.         目的:实现高内聚,低耦合

3.         设计模式原则

l  开-闭”原则(Open-Closed Principle, OCP)

Software entities should be open for extension,but closed for modification”,就是说模块应对扩展开放,而对修改关闭。模块应尽量在不修改原来的代码的情况下进行扩展。增加功能时,宁可增加一个新类,也不要修改一个已有的类

l  里氏代换原则(Liskov Substitution Principle, LSP)

Barbara Liskov”提出,如果调用的是父类的话,那么换成子类也完全可以运行。

l  合成复用原则(Composition/Aggregation Reuse Principle, CARP)

要少用继承,多用合成关系来实现,能不用继承尽量不用继承,因为继承会对子类暴露一些信息。

l  依赖倒转原则(Dependency Inversion Principle, DIP)

抽象不应该依赖于细节,细节应当依赖于抽象。要针对接口编程,而不是针对实现编程。传递参数,或者在组合聚合关系中,尽量引用层次高的类。节省大量编码

l  接口隔离原则(Interface Segregation Principle, ISP)

每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干

功能单一(高内聚)

l  迪米特法则(Law of Demeter, LoD)

最少知识原则,不要和陌生人说话

模块要和尽量少的其他模块发生联系(低耦合)

 

常见模式23种:三大类: 创建模式、结构模式、行为模式

创建模式

创建模式(Creational Pattern)对类的实例化过程进行了抽象。

u  简单工厂模式(Simple Factory

u  工厂方法模式(Factory Method

u  原型模式(Prototype

u  单例模式(Singleton

u  建造者模式(Builder

 

结构模式

结构模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构。结构模式描述两种不同的东西:类与类的实例(即对象)。根据这一点,结构模式可以分为类的结构模式和对象的结构模式

 

u  适配器模式(Adapter

u  桥接模式(Bridge

u  组合模式(Composite

u  装饰模式(Decorator

u  外观模式(Facade

u  享元模式(Flyweight

u  代理模式(Proxy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值