简单工厂:
类创建的责任和数据装配的责任,从对象的使用者身上分离出来,交给工厂去负责。
要使用对象,直接使用工厂去拿就好了。
策略模式:
一个接口,有多种不同的实现类来实现它(在不同的场景中,该行为有不同的实现算法)
一个抽象类,构造方法引用一个类,非抽象方法,外部实现它。
例子:计算器
适配器设计:
是一个类要实现一个接口中所有方法,但是不需要使用所有方法,抽离出来的一个过渡类(abstract类)。
interface interface{}; //或是类 ,就继承
abstract class implements interface{};
class extends abstract class{};
例子:插座,电脑主板,转换成客户期望的一个接口。
set.(cpu); 本来不匹配,现在多一个adapter类来实现它需要的接口,(调用需要的方法);这样就匹配了。
观察者模式:掌握Observable类和Observer接口
只要改变了 observable 对象就调用Observer接口的update()方法。
例子:房价Observable改变,立即通知notifyObser观察者
FACADE门面模式:--
如果定义多个接口,单个类来实现较繁琐;这时可以定义一个接口把其他接口的方法写到一个接口中,再用一个类去(调用它原来单个类中的方法来判断来)实现它。这样给外部调用就友好多了。(内部到外部--->给外部用的)
例子:修改用户密码和创建用户
静态内部类: 一个内部类加了一个关键字,内级别脱离实际的存在。
它的方法不能访问外部内的成员变量;但可以通过实例(new外部类)来调用。
还可以直接访问外部类的静态成员。
静态内部类可以直接new的,因它本身和类无关的。
decorator装饰者模式:
动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
一个接口,一个或多个是实现类。装饰者实现了这个接口(通过接口方法实现),也包含了这个接口作为属性。
(这样更具扩展性,可以继承装饰者,覆盖和扩展方法(功能))
例子: IO流,蓝山咖啡 ,大杯,加奶 || cpu, computer
* 1.写一个类实现与被增强类相同的接口
* 2.在类中定义一个变量,记住被增强对象
* 3.在类中定义一个构造方法,接收被增强对象
* 4.重写想增强的方法
* 5.对于不想增强的方法,则在方法体内直接调用被增强对象的方法
类创建的责任和数据装配的责任,从对象的使用者身上分离出来,交给工厂去负责。
要使用对象,直接使用工厂去拿就好了。
策略模式:
一个接口,有多种不同的实现类来实现它(在不同的场景中,该行为有不同的实现算法)
一个抽象类,构造方法引用一个类,非抽象方法,外部实现它。
例子:计算器
适配器设计:
是一个类要实现一个接口中所有方法,但是不需要使用所有方法,抽离出来的一个过渡类(abstract类)。
interface interface{}; //或是类 ,就继承
abstract class implements interface{};
class extends abstract class{};
例子:插座,电脑主板,转换成客户期望的一个接口。
set.(cpu); 本来不匹配,现在多一个adapter类来实现它需要的接口,(调用需要的方法);这样就匹配了。
观察者模式:掌握Observable类和Observer接口
只要改变了 observable 对象就调用Observer接口的update()方法。
例子:房价Observable改变,立即通知notifyObser观察者
FACADE门面模式:--
如果定义多个接口,单个类来实现较繁琐;这时可以定义一个接口把其他接口的方法写到一个接口中,再用一个类去(调用它原来单个类中的方法来判断来)实现它。这样给外部调用就友好多了。(内部到外部--->给外部用的)
例子:修改用户密码和创建用户
静态内部类: 一个内部类加了一个关键字,内级别脱离实际的存在。
它的方法不能访问外部内的成员变量;但可以通过实例(new外部类)来调用。
还可以直接访问外部类的静态成员。
静态内部类可以直接new的,因它本身和类无关的。
decorator装饰者模式:
动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
一个接口,一个或多个是实现类。装饰者实现了这个接口(通过接口方法实现),也包含了这个接口作为属性。
(这样更具扩展性,可以继承装饰者,覆盖和扩展方法(功能))
例子: IO流,蓝山咖啡 ,大杯,加奶 || cpu, computer
* 1.写一个类实现与被增强类相同的接口
* 2.在类中定义一个变量,记住被增强对象
* 3.在类中定义一个构造方法,接收被增强对象
* 4.重写想增强的方法
* 5.对于不想增强的方法,则在方法体内直接调用被增强对象的方法