今天在公司有时间看了下设计模式,现在写下自己的对它的理解..
1.开--闭原则:
一个软件实体应当对扩展 "开" 放,对修改 "关" 闭
2.理氏代换原则:
一个如果适用一基类,那么它必然适用于其子类
设计模式解析:
1.工厂模式:对类实例化不要直接调用类,而要对接口,如:InterfaceA interface = new entityClass();
2.工厂方法:设计一个工厂来完成创建实例工作。如:
Factory a = new Factory("com.life.entityClass");
//工厂类:
Factory{
public static InterfaceType create(String url)
{
Class c = Class.forName(url);
InterfaceType type = (InterfaceType)c.newInstance();
return type;
}
}
3.抽象工厂:一个类在实例化时要同里对他里面的类也进行实例化,此时可以把这一部分提取出来做为一个抽象工厂,如:
public abstract Facotory
{
abstract SampleInterface create(String url);
abstract SampleInterface2 create(String url);
}
//每个类生产出一套实例
public class SampleInterfaceA extends Factory
{
public SampleInterface create(String url)
{
....
return SampleInterface;
}
public SampleInterface2 create(String url)
{
...
return SampleInterface2;
}
}
//调用:Factory factory = new SampleInterfaceA(...);
1.开--闭原则:
一个软件实体应当对扩展 "开" 放,对修改 "关" 闭
2.理氏代换原则:
一个如果适用一基类,那么它必然适用于其子类
设计模式解析:
1.工厂模式:对类实例化不要直接调用类,而要对接口,如:InterfaceA interface = new entityClass();
2.工厂方法:设计一个工厂来完成创建实例工作。如:
Factory a = new Factory("com.life.entityClass");
//工厂类:
Factory{
public static InterfaceType create(String url)
{
Class c = Class.forName(url);
InterfaceType type = (InterfaceType)c.newInstance();
return type;
}
}
3.抽象工厂:一个类在实例化时要同里对他里面的类也进行实例化,此时可以把这一部分提取出来做为一个抽象工厂,如:
public abstract Facotory
{
abstract SampleInterface create(String url);
abstract SampleInterface2 create(String url);
}
//每个类生产出一套实例
public class SampleInterfaceA extends Factory
{
public SampleInterface create(String url)
{
....
return SampleInterface;
}
public SampleInterface2 create(String url)
{
...
return SampleInterface2;
}
}
//调用:Factory factory = new SampleInterfaceA(...);