
Java-设计模式
IT匠人
38989725@qq.com
展开
-
代理模式
代理模式的结构 所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。 代理模式类图如下: 在代理模式中的角色: ● 抽象对象角色:声明了目标转载 2017-07-01 16:06:17 · 162 阅读 · 0 评论 -
浅谈MVC、MVP、MVVM架构模式的区别和联系
MVC、MVP、MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用。一、MVC(Model-View-Controller)MVC是比较直观的架构模式,用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)。MVC使用非常广泛,比如J转载 2017-07-28 17:33:12 · 516 阅读 · 0 评论 -
Java设计模式 -- 基本原则(重构示例)
Java设计模式 -- 基本原则这两个星期开始系统地学习设计模式相关的知识,对每一个原则或者设计模式主要从下面几点分析学习:定义:简单地描述其作用解决问题:说明该原则或设计模式解决什么限制条件下的问题。结构图:绘制相关例子的UML机构图。代码示例:通过一个例子解释该模式的实现方法。优缺点:该模式的局限性。参考资料:此次学习主要依赖于下面两个技术网站:设计模式Java转载 2017-07-24 17:26:57 · 1246 阅读 · 0 评论 -
设计模式六大原则概要
单一职责原则(Single Responsibility Principle)一个类只负责一个功能领域的职责;换句话说,就一个类而言,应该只有一个引起它变化的原因。开闭原则(Open-Closed Principle)软件实体应该对扩展开放,对修改关闭。里氏代换原则(Liskov Substitution Principle)所有引用基类(父类)的地方必需能够透转载 2017-07-24 16:55:53 · 225 阅读 · 0 评论 -
设计模式之六大原则——依赖倒置原则(DIP)
依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义:高层模块不应该依赖底层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 依赖倒置原则在Java语言中的表现是:模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的;接口或抽象类不依赖于实现类;实现类依赖接口或抽象转载 2017-07-24 12:53:48 · 249 阅读 · 0 评论 -
设计模式之六大原则——里氏替换原则(LSP)
里氏替换原则(Liskov Substitution Principel)是解决继承带来的问题。 继承的优点:代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性;提高代码的重用性;子类可以形似父类,但又异于父类;提高代码的可扩展性;提高产品或项目的开放性。继承的缺点:继承是侵入性的,只要继承就必须拥有父类的所有属性和方法;降低代码的灵活性,子类必须转载 2017-07-24 12:37:27 · 260 阅读 · 0 评论 -
设计模式之六大原则——单一职责原则(SRP)
定义:应该有且仅有一个原因引起类的变更。There should never be more than one reason for a class to change. 优点:1、类的复杂性降低,实现什么职责都有清晰明确的定义;2、可读性提高,复杂性减低,可读性当然提高;3、可维护性提高,可读性提高,可维护性当然提高;4、变更引起的转载 2017-07-24 12:17:32 · 202 阅读 · 0 评论 -
设计模式之六大原则——接口隔离原则(ISP)
接口隔离原则 Interface Segregation Principle 定义:客户端不应该依赖它不需要的接口类间的依赖关系应该建立在最小的接口上我们可以把这两个定义概括为一句话:建立单一接口,不要建立臃肿庞大的接口。再通俗一点讲:接口尽量细化,同时接口中的方法尽量少。提供给每个模块的都应该是单一接口,提供给几个模块就应该有几个接口,而不是建立一个庞转载 2017-07-24 12:15:43 · 206 阅读 · 0 评论 -
设计模式之六大原则——迪米特法则(LoD,LKP)
定义:迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP)。一个对象应该对其他对象有最少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的public方法,我就调用这么多,其他的一概不关心。 含转载 2017-07-24 12:13:06 · 305 阅读 · 0 评论 -
设计模式之六大原则——开闭原则(OCP)
开闭原则(Open Closed Principle)是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的、灵活的系统。 定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。Softeware entities like classes,modules and functions should be open for extension but转载 2017-07-24 12:06:48 · 207 阅读 · 0 评论 -
Java开发中的23种设计模式概述
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式(Factory Method):凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。抽象工厂模式(Abstract Factory):单例模式(Singleton):建造者模式(Builder):原型模式(Prototype):结构型模式原创 2017-06-05 22:47:54 · 277 阅读 · 0 评论 -
Netty系列之Netty高性能之道
1. 背景1.1. 惊人的性能数据最近一个圈内朋友通过私信告诉我,通过使用Netty4 + Thrift压缩二进制编解码技术,他们实现了10W TPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化+BIO(同步阻塞IO)的通信框架,性能提升了8倍多。事实上,我对这个数据并不感到惊讶,根据我5年多的NIO编程经验,通过选择合适的NIO转载 2017-07-01 16:48:28 · 233 阅读 · 0 评论 -
命令模式(Command)
命令模式(Command)命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。我们看看关系图:Invoker是调用者(司令员),Receiver是被调用者(士...转载 2019-04-18 11:35:04 · 155 阅读 · 0 评论