设计模式的顶层设计思想分析

我从通俗角度讲一下六大原则:     

    一是开闭原则(Open Close Principle),强调对扩展开放,对修改关闭。应用场景是当我们的代码需要不断修改时,不能去修改原有的代码,而是抽象出父类接口,修改子类即可。

    二是里氏代换原则(Liskov Substitution Principle),强调是父类和子类的关系。应用场景是在定义时使用父类对象,而在运行时再关联子类类型。

    三是依赖倒转原则(Dependence Inversion Principle),强调接口的重要性,接口就是把一些公司的方法和属性声明,然后具体的业务逻辑是可以在实现接口的具体类中实现的。所以我们当依赖对象是接口时,就可以适应所有的实现此接口的具体类变化,应用场景就是通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合。

    四是接口隔离原则(InterfaceSegregation Principles),强调接口的职责要明确,根据职责定义“较小”的接口,不要定义“高大全”的接口。也就是说接口要尽可能的职责单一,暴露给客户端的方法更具有“针对性”,是使用多个隔离的接口,比使用单个接口要好。应用场景是在使用接口时要注意控制接口的粒度,接口定义的粒度不能太细,也不能太粗。

    五是单一职责原则(Single Responsibility Principle),强调一个类只负责一个功能领域中的相应职责,应用场景是一个类是一组相关性很高的函数、数据的封装,比如单例模式可以降低内存的开销。

    六是迪米特法则(Law of Demeter),强调应该尽量减少对象之间的交互,如果其中的一个对象需要调用另一个对象的某一个方法的话,可以通过第三者转发这个调用。应用场景就是通过引入一个合理的第三者来降低现有对象之间的耦合度。

    23种设计模式阐述了如何协同作战部署和兵力调动的问题,作战前的兵力部署和组合分别是创建型模式和结构型模式,作战时的兵力调动就是行为型模式。

    创建型模式就是作战部署,主要包含以下5种设计模式:工厂方法模式(Factory Method Pattern);抽象工厂模式(Abstract Factory Pattern);建造者模式(Builder Pattern);原型模式(Prototype Pattern);单例模式(Singleton Pattern)。其中最常用的就是工厂方法模式、抽象工厂模式和单例模式。

    结构型模式就是作战前的兵力组合,用来处理类或者对象的组合,主要包含以下7种设计模式:适配器模式(Adapter Pattern);桥接模式(Bridge Pattern);组合模式(Composite Pattern);装饰者模式(Decorator Pattern);外观模式(Facade Pattern);享元模式(Flyweight Pattern);代理模式(Proxy Pattern)。其中最常用的就是适配器模式、桥接模式、带代理模式。

    行为型模式就是兵力调动,用来对类或对象怎样交互和怎样分配职责进行描述,主要包含以下11种设计模式:责任链模式(Chain of Responsibility Pattern);命令模式(Command Pattern);解释器模式(Interpreter Pattern);迭代器模式(Iterator Pattern);中介者模式(Mediator Pattern);备忘录模式(Memento Pattern);观察者模式(Observer Pattern);状态模式(State Pattern);策略模式(Strategy Pattern);模板方法模式(Template Method Pattern);访问者模式(Visitor Pattern)。其中最常用的就是责任链模式、迭代器模式、观察者模式、状态模式和策略模式。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值