java设计模式等相关思想

版权声明:我只是个小小程序员,为自己的成长代言 https://blog.csdn.net/oMoLin1/article/details/89168379

java设计模式等相关思想


设计模式:
·java中23中设计模式
菜鸟教程http://www.runoob.com/design-pattern/design-pattern-tutorial.html
http://www.cnblogs.com/geek6/p/3951677.html

·总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
其实还有两类:并发型模式和线程池模式。

创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程。
结构型模式:把类或对象结合在一起形成一个更大的结构。
行为型模式:类和对象如何交互,及划分责任和算法。


·六大设计原则
单一职责:一个类负责一个功能,一旦需求更改,不会受到其他类的影响,但是如果这个功能需求又被细分,会出现更细的划分,只能修改这个类,需要对代码进行重构,防止功能职责的不确定性。

里氏替换原则 (Liskov Substitution Principle)(是对开-闭原则的补充)
实现“开-闭”原则的关键步骤就是抽象化,基类与子类的继承关系就是抽象化的具体实现,所以里氏替换原则是对实现抽象化的具体步骤的规范,就是子类可以扩展父类的功能,但不能改变父类原有的功能,尽量不要重写或重载父类方法
如果非要重写父类的方法,比较通用的做法是:原来的父类和子类都继承一个更通俗的基类,原有的继承关系去掉,采用依赖、聚合,组合等关系代替。

依赖倒置原则(dependence inversion principle)
所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体。实现开闭原则的关键是抽象化,并且从抽象化导出具体化实现,如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要手段
通过将高层模块转换为接口形式,一切都需要转化为抽象,不要注重细节的实现,抽象指的是接口或者抽象类,细节就是具体的实现类,使用接口或者抽象类的目的是制定好规范和契约,而不去涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成。
依赖倒置原则的核心思想是面向接口编程

接口隔离原则(interface segregation principle)
使用多个隔离的接口,比使用单个接口要好。本意降低类之间的耦合度,而设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。拆分接口,接口中不要有太多方法,否则在实现接口的时候需要将不需要的方法也要实现了,需要为各个类建立专用的接口
接口隔离原则和单一原则的区别:
其一,单一职责原则原注重的是职责;而接口隔离原则注重对接口依赖的隔离。其二,单一职责原则主要是约束类,其次才是接口和方法,它针对的是程序中的实现和细节;而接口隔离原则主要约束接口接口,主要针对抽象,针对程序整体框架的构建

迪米特法则(demeter principle)最少知道原则
一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
独立性,不会影响到其他模块或者尽可能不影响
低耦合,高内聚:软件编程原则,该原则是降低类之间的耦合

开闭原则(open close principle)
为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,需要面向接口编程
对扩展开放,对修改关闭,用抽象构建框架,用实现扩展细节

·软件开发模式


·生产者消费者模式
https://www.cnblogs.com/chentingk/p/6497107.html
生产者消费者模型具体来讲,就是在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信,生产者生产消费者需要的资料,消费者把资料做成产品。
在日益发展的服务类型中,譬如注册用户这种服务,它可能解耦成好几种独立的服务(账号验证,邮箱验证码,手机短信码等)。它们作为消费者,等待用户输入数据,在前台数据提交之后会经过分解并发送到各个服务所在的url,分发的那个角色就相当于生产者。消费者在获取数据时候有可能一次不能处理完,那么它们各自有一个请求队列,那就是内存缓冲区了。做这项工作的框架叫做消息队列。

posted on 2019-01-09 15:50 莫林李忠利 阅读(...) 评论(...) 编辑 收藏

猜你喜欢

转载自blog.csdn.net/oMoLin1/article/details/89168379
今日推荐