单例模式
单例,望名识意,表达单个的意思,当你调用时当不存在的时候生成一个对象
当调用的时候就不能在让他继续生成,如果谁调用都可以生成,那就不叫单例了
代码其实有很多种,相对产生多种叫法,例如懒汉式,饿汉式等。总结就是当存在的时候不能生成第二个
工厂模式
工厂像一个大集体,当复杂业务的出现时,那其中肯定存在多种功能。比如:现实中的工厂存在着多个车间,每个车间有自己的任务职责,当需要那一步骤时就进入对应的车间,最终等待产品的出厂,工厂模式其实是一样的,可以定义一个接口 interface 然后构造对应的方法并实现,当你需要的时候你可以任意调用其方法,最终实现自己的需求。
举例: dao service impl 银行系统合同业务的impl中,如果合同的impl中a,b,c方法都用到 (select t.* from table t where t.id = parameter) 意味着service中需要写出对应的查询方法 那不相当于service是一个抽象工厂 ,impl是具体工厂,可以省去大量重复的查询方法。
注:一个接口中可以定义多个方法 ,你认为这个方法跟这个接口有关 你就可以写在里面,举例中合同表的service 还可以写有关用户表crud的方法,只要你认为这个方法放在这里合理就可以。
原型模式
原型类似你的克隆体,如同克隆羊多莉,孙悟空七十二变,在Java层面分为浅克隆和深克隆,浅克隆代表着复制之后产生的对象,如果进行修改内容 那也影响着本体对象的内容修改,深克隆与之相反
注:类需要实现Cloneable接口,否则会抛出CloneNotSupportedException异常。
建造者模式
无论房屋的建造还是航母的建造 他都有对应的流程,应该按照什么的顺序进行组装,最终塑造出一个完整的物品,其实和工厂模式有类似 但是工厂模式不强调顺序 一个方法我可以只被调用一次 另一个方法会被调用多次 但是建造者模式中不能这样 ,他是强调顺序 在你执行下一步之前必须满足条件 ,所以又说和工厂模式不一样。根据业务来采用不同的模式