程序设计一些原则及单例模式示例

1.面向接口编程(这是Java编程里公认的第一原则)
2.优先使用对象组合而非类继承
3.分层(表现层,逻辑层,数据层)
表现层:展示数据,人机交互,收集参数调用逻辑层
逻辑层:进行数据逻辑校验,逻辑判断,实现业务功能,处理相关功能,处理 后续流程,组织数据返回给表现层
数据层功能:实现数据持久化,实现对象和持久化数据的双向映射。

层间交互的基本原则:
1.表现层调用逻辑层,逻辑层调用数据层,不可以反过来
2.层间交互也应该通过接口进行调用,以确保各层的实现独立变化。

基本原则2:
1.开闭原则:
就是对新增开放,对修改关闭。应尽量做到不用修改模块的源代码,就能更改模块的行为
2.依赖性倒置原则
就是依赖抽象而不是依赖具体的实现
3.接口隔离原则
就是不要使用通用的接口,而是为不同的用户使用不同的接口
4.替换原则
就是子类应当可以替换父类并出现在父类能够出现的任何地主。

类设计原则:
1.类要单一:加强内聚,松散耦合,好的封装,类的粒度要合理
实现类不能依赖它的使用类,应考虑灵活性,也就是可配置,可维护,
考虑性能,考虑可伸缩性,可扩展性,合理的复用。考虑接口和抽象类的使用。(既要约束子类的行为又要为子类提供公共的功能时使用抽象类)尽量减少类与协作类的交互次数和交互信息的量。父类不应知道子类的信息,子类必须知道父类的信息。更多使用类的组合,而不是继承。访问对象必须使用接口,不能绕过接口。

---------------------------------------------------------------------------
设计模式:
描述一个设计模式,通常包含以下4个部分:
1,模式名称,就是为每个设计模式取个名字,便于交流和使用
2,环境和问题:描述在什么场景下,出现什么样的特定的问题
3,解决方案:描述如何解决这个问题
4,效果:描述模式可能带来的问题,或者使用中需要权衡的问题

单例模式:
场景和问题:在Java程序中,如何确保在运行期间,某个类只有一个实例
本质:控制实例数目
体现的一些思想:延迟装载,缓存

 1 package singleton;
 2 
 3 public class SingleClass {
 4     //确保多线程模式下的安全,以空间换时间,缓存了一个实例
 5     private static SingleClass instance = new SingleClass();
 6     //确保外部不能调用构造方法
 7     private SingleClass(){}
 8     //提供单一实例
 9     public static SingleClass getInstance(){
10         return instance;
11     }
12 
13 }
14 
15 //此种方式可能会有多线程问题,但是以时间换取了空间,延迟装载,在不会出现多线程的问题环境中应该优先使用
16 class SingleClass2{
17     private static SingleClass2 instance;
18     
19     private SingleClass2(){}
20     
21     public static SingleClass2 getInstance(){
22         if(instance == null){
23             instance = new SingleClass2();
24         }
25         return instance;
26     }
27 }

工厂方法:

场景和问题:面向接口编程中,如何得到接口呢?
解决方案:使用工厂方法
本质: 负责选择接口的实现,返回给客户接口

posted @ 2013-06-16 15:21  丁丁木木  阅读(264)  评论(0编辑  收藏  举报