
设计模式
xinyuebaihe
这个作者很懒,什么都没留下…
展开
-
外观模式
package com.csdn.demo;class Cook { private void prepare() { System.out.println("准备食材"); } private void wash() { System.out.println("洗菜"); } private void cutup() { System.out.printl...原创 2020-02-10 17:35:08 · 109 阅读 · 0 评论 -
模板方法模式
TemplateDemo.javapackage com.csdn.demo;/** * 模板方法模式。 * 流程固定,具体操作不同。可用模板方法模式 * 1.抽象模板(定义了流程的具体方法) * 2.具体模板实现抽象模板 * @author Administrator * *///模板方法abstract class Template{ abstract p...原创 2020-02-10 16:53:10 · 123 阅读 · 0 评论 -
装饰器模式
DecorateDemo.javapackage com.csdn.demo;/** * 装饰器模式 * 要素: * 1.抽象类(接口也可以) * 2.具体类 * 3.继承抽象类的装饰类(接口也可以) * 4.具体装饰类 * @author Administrator * */abstract class Report { String studentName...原创 2020-02-10 14:30:55 · 94 阅读 · 0 评论 -
命令模式
CommandDemo.javapackage com.csdn.cmmmand;/** * 命令模式:使发命令者与命令执行者解耦 * 角色: * 抽象命令 * 具体命令 * 命令发送者 * 命令执行者 * * 以下例子为:程序员向数据库发查询的sql命令 * @author Administrator * *///抽象命令interface Comma...原创 2020-02-09 22:12:14 · 113 阅读 · 0 评论 -
适配器模式
DemoClassAdapter.java:类适配器:package com.csdn.adapter;/** * 适配器模式 * 就是转换原有类,使它能更方便使用。如我们用的220伏电,但日本用110伏。 * 这时就需要一个转换器,叫适配置器 * 如有一丑女孩,要通过化妆师化妆下,变为漂亮女孩,才能出去示人 * 元素: * 1.抽象接口类 * 2.原有类 * 3.具...原创 2020-02-07 16:47:27 · 105 阅读 · 0 评论 -
策略模式
DemoStrategy.javapackage com.csdn.strategy;/** * 策略模式 * 根据每个策略不同的特点做不同的事,还不用在代码中写大量的判断 * 要素: * 1.抽象策略 * 2.具体策略 * 3.策略上下文 *///抽象策略interface Strategy{ public void doWork();}//具体...原创 2020-02-07 14:35:36 · 99 阅读 · 0 评论 -
观察者模式
ObservePullDemo.java拉模型package com.csdn.observe;import java.util.ArrayList;import java.util.List;/** * 观察者模式 * 一方向另一方传递消息,以便另一方根据消息来作出不同的判断 * 分为推模型与拉模式 * 推模式是具体传什么消息 * 拉模型是把被观察者自己传过去...原创 2020-02-07 00:12:16 · 124 阅读 · 0 评论 -
单例模式
DemoSingleton.java代码:package com.csdn.singleton;/** * 饿汉式--单例模式 * 类一开始加载的时候就要创建对象。 * 特点:私有静态的构造方法,私有的实例属性,公有静态的实例方法 * 为什么要静态? * 因为要让外界访问。一般情况下用对象访问。但此时还没有对象。 * 所以要用类名访问。只有静态了才能用类名访问。...原创 2020-02-04 00:21:45 · 86 阅读 · 0 评论 -
面向对象6大原则之----迪米特法则
demoLodNot.java:没完全使用迪米特法则package com.csdn.principle.lod;import java.util.List;class Customer{ //根据迪米特法则:类属性是直接朋友 Order order; //根据迪米特法则:方法参数或者方法返回对象是直接朋友 public int CountGo...原创 2020-02-03 20:14:31 · 142 阅读 · 0 评论 -
面向对象6大原则之----合成聚合复用原则
在线画 uml 图:https://www.processon.com/结构:DemoAggP.java代码如下:package com.csdn.principle.aggp;class Head{ public void showHead(){ System.out.println("显示头部"); }}class Peo...原创 2020-02-02 23:18:34 · 206 阅读 · 0 评论 -
面向对象6大原则之----接口隔离原则
接口A中有6个方法,a1,a2,a3,a4,a5,a6实现类A1实际上只用其中的两个方法a1,a2,但是无奈实现接口A时把所有的方法都要重写,暂时不用的方法空实现。麻烦,不好实现类A2实际上只用其中的三个方法a4,a5,a6。如A1一样,把暂时不用的方法都为空实现。麻烦,不好此时就要用接口隔离原则,根据实际情况,a1,a2设计为接口B,a3设计为接口C,a4,a5,a6设计为...原创 2020-02-02 22:02:22 · 123 阅读 · 0 评论 -
面向对象6大原则之----里氏替换原则
代码结构:DemoLISP.java 的代码如下package com.csdn.principle.lsp;abstract class Phone{ //子类必须重写。不重写子类继续抽象类 public abstract void call(); //属于父类对象的非抽象方法,最好子类实现时不要重写。一般规则。 //因为子类重...原创 2020-02-02 19:59:25 · 127 阅读 · 0 评论 -
面向对象6大原则之----开闭原则
代码结构OpenClosedPrincipleNo.java 没有使用开闭原则代码//假定都是账户总金额为100//不同的银行转账的手续费不一样,A银行的手续费为0.01class BankA{ public double transforMoney(double money){ //有可能还有其它一系列操作,每个银行的不一样 retu...原创 2020-02-01 23:16:23 · 135 阅读 · 0 评论 -
设计模式概述
有红旗的即为面试时喜欢问的原创 2020-02-01 23:08:42 · 98 阅读 · 0 评论 -
代理模式
保护代理进行权限控制原创 2019-04-30 23:35:26 · 113 阅读 · 0 评论 -
模板方法模式
原创 2019-04-30 22:16:50 · 99 阅读 · 0 评论 -
适配器模式
原创 2019-04-30 21:19:16 · 132 阅读 · 0 评论 -
工厂模式
原创 2019-04-30 20:45:26 · 105 阅读 · 0 评论 -
责任链模式
客户端维护各责任链上对象的关系。它的方法:发请求,发请求时带判断参数;获取第一责任人。属性:判断参数,第一责任人。定义一个抽象的责任对象,各责任链类来实现它。这个抽象类中有一个静态属性,下一责任的set方法,本类实现责任方法。根据属性判断是否能处理,如果本类可以处理,就处理。处理不了,调用设置的下个责任类。如果为第顶级责任,再没有下一责任,只能处理或者不处理。评价:因每次并不能到达...原创 2019-04-30 19:40:45 · 99 阅读 · 0 评论