摘要:
应用场景: 安全代理:控制对原对象的访问权限 注: 之所以把权限控制放在"代理类"中,而不是放在原对象中,主要依据"单一性原则". 远程代理:网络通讯时,将加密,解密,打包,解包这些操作一起封装在"代理对象"使得客户端 调用时,就像是在访问本地数据. eg: WebService的工作原理 虚拟代理:当存在实例化需要很长时间的成员对象时,当需要调用到与该对象相关的方法时才 声明该对象,并实例化. 智能指引:未使用过基本特点: 代理拥有实际执行者的实例,代理的每一个函数,直接调用实际执行者对应的函数.一、普通代理: (安全代理) 1.原 阅读全文
摘要:
应用场景: 将构建一个复杂产品的过程进行分解: 1)每个部件的创建:专注于每个部件自身的创建 2)整体产品的创建:将创建好的各个部件传递给产品类 一个复杂的产品对象由若干个部件对象装配而成,由此可使整个复杂构建过程的逻辑更加清晰,可读性更强一、组成结构 组成: 抽象建造者 具体建造者 指挥者 产品类 产品类:public class HouseProduct { private int area; private int roomCount; private String color; public HouseProduct(int area,... 阅读全文
摘要:
应用场景:图形用户界面中,各个控件构成树状拓扑结构.在做消息机制时,子控件无 法处理的消息,就继续传递给父控件来处理.特点: a)责任链模式并不指定链的拓扑结构,可以是单链表,二叉树,环 b)链接顺序由系统任意指定,甚至可以进行动态变化一、组成结构 请求者类: public class Request {//请求者类,用flag标识 private int levelFlag; public Request(int levelFlag) { this.levelFlag=levelFlag; } public int getLevelFlag... 阅读全文
摘要:
应用场景: 某个类型具有两个或多个维度,实现抽象与行为的分离,防止"行为代码模块"冗余.一、基本结构 组成: 行为接口: 1个,定义了通用的行为方法 具体行为类: 多个,具体实现行为接口中指定的行为方法 抽象类: 1个,定义了通用的行为方法,供外部调用,通常方法名与"行为接口"中的方法名相同. 抽象类具体实现: 若干个,通过其中一个维度,具体定义抽象类 行为接口:public interface Engine {//行为接口 public void setEngine();} 具体行为类一:public class Engine1500CC implem 阅读全文
摘要:
一、基本结构 组成: a)策略接口:1个 b)具体策略类:多个,封装了具体的算法和行为 c)调度类: 1个,持有某具体策略类的引用,供客户端使用 策略接口://策略接口,定义了不同策略供外部调用的“通用方法”public interface StrategyInterface { public void multiWay_tour();} 具体策略类一:public class FirstConcreteStrategy implements StrategyInterface { public void multiWay_tour() {//策略方法的具体实现 ... 阅读全文
摘要:
一、基本结构1.层次一:原始抽象类 抽象类:Cakeabstract class Cake { protected String description="Unknown Cake"; public abstract void printDescription();//抽象方法必须指定为abstract类型 }2.层次二:具体实现者、装饰者抽象类 具体实现者1:WhiteCakepublic class WhiteCake extends Cake { public WhiteCake() { description="WhiteCake"; } ... 阅读全文
摘要:
面向对象的基本原则:多聚合,少继承。低耦合,高内聚.【高内聚、低耦合】 内聚:每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码。 耦合:模块与模块之间接口的复杂程度,模块之间联系越复杂耦合度越高,牵一发而动全身。 目的:使得模块的“可重用性”、“移植性”大大增强 通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低 模块粒度: 『函数』 高内聚:尽可能类的每个成员方法只完成一件事(最大限度的聚合) 低耦合:减少类内部,一个成员方法调用另一个成员方法 『类』 高内聚低耦合:减少类内部,对其他类的调用 『功能块』 高内聚低耦合:减少模块之间的交互复杂度(接口数量,参数数据) 横向:. 阅读全文
摘要:
使用场景: 接口转换一、对象适配器(优先选用)优选的原因:多用聚合,少用继承原始接口类:public class Adaptee { public void standardRequest(){ System.out.println("这是原始标准接口!"); }}目标接口:public interface Target { public void newRequest(); }适配器类://聚合的方式,适配器类中“原始接口对象”作为其成员对象public class Adapter implements Target ... 阅读全文
摘要:
一、定义观察者类1)观察者DiningObserverpublic class DiningObserver implements Observer { //只需要实现Observer接口中的update方法 public void update(Observable o, Object arg) { if(arg.equals("Dining") ){ System.out.println("我是观察者DiningObserver,当前被观察者的状态为:Dining!"); }else{ System.out.print... 阅读全文
摘要:
Alt+Shit+S Generaet Getter and Setter 选中Generate method comments 文本编辑 复制行 Ctrl+Alt+向下键 编辑文本 快捷键:选中接口名按ctrl+t 会列出所有实现此接口的类 ctrl+o 找到这个类中的所有方法 Ctrl+O 快速显示 OutLine Ctrl+T 快速显示当前类的继承结构 Ctrl+Shift+X 把当前选中的文本全部变为小写 Ctrl+Shift+Y 把当前选中的文本全部变为小写 Ctrl+Shift+F 格式化当前代码 Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定... 阅读全文