网站被k怎么查,app和小程序的区别,成品网站灬源码1688,建设网站用什么》设计原则《 》Single Responsibility Principle#xff08;单一职责原则#xff09;类只有一个修改的原因。 ●类的复杂性降低#xff0c;实现什么职责都有明确的定义。 ●可读性高 ●可维护性高 ●变更引起的风险降低。 PS#xff1a;基本不可能实现 》里氏替换原则单一职责原则类只有一个修改的原因。 ●类的复杂性降低实现什么职责都有明确的定义。 ●可读性高 ●可维护性高 ●变更引起的风险降低。 PS基本不可能实现 》里氏替换原则只要父类可以出现的地方子类就可以出现。 》Dependence Inversion Principle依赖倒置原则 ●高层次模块不应该依赖低层模块两者都应该依赖抽象。 ●抽象不应该依赖细节细节应该依赖抽象 》接口隔离原则类之间的依赖关系应该建立在最小的接口上。 》迪米特法则一个对象应该对其他对象有最少的理解。 》开闭原则对扩展开放对修改关闭。 ●逻辑变化 ●子模块变化 ●可见视图变化 设计模式 》单例模式Singleton Pattern要求一个类只能生成一个对象所有对象对他的依赖都是相同的。 类图 优点 ●较少了内存开支性能开销。避免对资源的多重占用。 ●优化和共享资源访问。 缺点 ●扩展困难。对测试不利。 使用场景 ● 生成唯一序列号的环境。 ●需要一个共享的访问点或共享数据。如web上的计数器。 ●创建对象需要耗费的资源过多。如访问IO资源。 注意事项 ●线程同步的问题。 最佳实现 ● 在Spring中每个Bean默认都是单例的。 》工厂方法模式定义一个用于创建对象的接口让子类决定实例化哪一个对象。 类图 优点: ●良好的封装。代码结构清晰。 ●扩展非常优秀。 ●屏蔽产品类。 扩展 ● 缩小为简单工厂。 ●升级为多个工厂类。 ●替代单例模式 ●延迟初始化。 》抽象工厂模式为创建一组相关或依赖的对象提供一个接口却无需指定它们的具体类。 类图 优点 ●封装性工厂类创建需要的对象。 ●产品族的约束为非公开的状态。 缺点 ● 产品族扩展非常困难。 》模板方法模式定义一个操作中算法的框架而将一些步骤延迟到子类使得子类可以在不改变一个算法的结构即可重新定义该算法的某些特定步骤。 类图 ●注在软件开发的过程中如果相同的代码拷贝过两次就要对设计产生怀疑。 ●为了防止恶意的操作一般模板方法都加上final关键字不如许复写。 优点 ●封装不变的部分扩展可变的部分。 ●提取公共代码便于维护。 ● 行为由父类控制子类实现。 缺点 ●子类对父类产生了影响会带来代码的阅读难度。 使用场景 ●可以把核心算法设计为模板方法。 ●重构时把相同的代码抽取到父类。 扩展 ●增加钩子方法也就是说外界条件改变影响到模板方法的执行。 》建造者模式将一个复杂对象的构建与他的表示分离。是得同样的构建过程可以创建不同的表示。 ● ArrayList和HashMap如果定义成类的成员变量那你的方法中的调用一定要做一个clear的动作。以防数据混乱。 类图 ●product产品类通常是实现了模板方法模式。 ●Builder抽象构建者规范产品的组件。一般由子类实现。 ●ConcreteBuilder实现抽象类所定义的方法并返回一个组建好的对象。 ●Director导演负责安排已有的顺序。起到封装的作用。 优点 ●可以使客户端不必知道产品内部组成的细节。 ●建造者独立容易扩展。 ● 便于控制细节。 使用场景 ●相同的方法不同的执行顺序产生不同的结果。 ●多个部件都可以装配到一个对象中但是产生的运行结果有不同。 ●产品类非常复杂或者产品类中的调用顺序不同产生了不同的效能。 》代理模式为其他对象提供一个代理以控制这个对象的访问。 类图 ●subject主题角色普通的业务类型定义。 ● Realsubject业务逻辑的具体执行者。 ●proxy调用真实的类。 优点 ● 职责清晰真实的角色实现实际的业务逻辑。不必关心其他的事情。 ● 高扩展性不管具体的主题如何变化代理类都可以不用变。 注String AOP是一个典型的动态代理的应用。 》》原型模式用原型实例指定创建对象的种类。并且通过拷贝这些原型创建新的对象。 类图 优点 ● 性能优良原型模式是二进制流的拷贝要比直接new一个性能好的多。 ● 逃避构造函数的约束。 注执行拷贝的时候不会运行构造函数。 ● 浅拷贝clone只拷贝本对象其对象内部的数组引用对象不拷贝。 注在使用原型模式的时候引用的成员变量必须是成员变量与是一个可变的引用变量才不会被拷贝。 ●深拷贝把引用变量单独拷贝。 注深拷贝与浅拷贝不要混合使用。 对象的clone与对象的final关键字是冲突的。要是用clone方法就不要使用final。 》》中介者模式用一个中介对象封装一系列对象的交互中介者使各对象不需要显示地相互作用。从而松耦合。也可以独立的改变他们之间的交互。 类图 ●优点减少类的依赖。降低了类之间的耦合度。 ●缺点中介者会膨胀的很大逻辑复杂。 ●MVCC就是一个中介者。 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 未完待续。。。。。。 转载于:https://www.cnblogs.com/skys-li/p/5363771.html