一:软件设计原则
1.单一职责原则:
有且只有一个原因引起类的变化(类或者接口的职责单一化)
2.里氏替换原则:
子类可以扩展父类的功能,但不能改变父类原有的功能
3.依赖倒置原则:
1.高层模块不应该依赖于底层模块,都应该依赖于他们的抽象
2.抽象不应该依赖于细节
3.细节应该依赖于抽象
4.接口隔离原则:
建立单一职责的接口,不要建立臃肿庞大的接口,接口细化(比如10个接口其中5个查的,5个写的,在一个接口文件写着,但是是提供给5个服务用的,就需要细化,按单一职责原则,可能是按照读写进行拆分,接口隔离原则就需要按服务拆分)
5.迪米特原则:
一个对象应该对其他对象有最少了解,一个类应该对自己需要耦合的或调用的类知道的最少
6.开闭原则
一个软件实体应该对扩展开放,对修改关闭:一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码实现变化
二:设计模式
1.单例模式
单例模式简单代码
1.单例模式的优点
1.由于单例模式在内存中只有一个实例,减少了内存开支,特别是一个对象需要频繁的创建,销毁时,而且创建和销毁时性能又无法优化,单例模式的优势就非常明显了
2.由于单例模式只生成一个实例,所以减少了系统的性能开销,当一个对象的产生需要比较多的资源时候,如读取配置,产生其他依赖对象等,则可以在应用启动时候直接产生一个对象常驻内存的方式解决
3.单例模式可以避免对资源的多重占用,由于只有一个实例对象存在于内存中,避免了对同一个资源文件的同时写资源
4.单例模式可以在系统中设置全局的安全点,优化和共享资源访问,
2.单例模式的缺点
1.没有接口,扩展困难,需要扩展的话只能修改代码
2.高并发环境下,如果单例模式没有完成,不能进行正常的测试
3.与单一职责原则冲突,一个类只实现一个逻辑,是不是单例应该与环境有关,但是单例模式把单例和业务逻辑进行了绑定
2.工厂方法模式
1.定义
3.抽象工厂模式