我有这样的情况:
一个物体是可观察的,另一个物体是观察者。
观察者具有通过notifyObservers接收对象的方法update(Observable obs,Object obj)观察者接收通知,更新方法打印改变的对象。我想在实现MVC模式的图形用户界面中打印出结果。我正在遵循这个指南。我的想法是让Controller成为观察者。大概是这样的:
public class Controller extends AbstractController implements Observer
{
public static final String TOTAL_HIT_COUNT_PRO
如果我有这门课
import java.util.Scanner;
public class SimpleCalc {
private int x;
private int y;
private Scanner scan;
public SimpleCalc() {
scan = new Scanner(System.in);
System.out.print("Please Enter The First Number: ");
this.x = scan.nextInt();
我的对象D封装了不同的结构(本例中是A、B、C)。D主要用于作为参数传递给一个名为"RealClientInterface“的对象。因为D由A,B,C组成,其中"RealClientInterface“需要运行它的函数。
我的问题是D是否与设计模式有关?如果是这样的话,在这种情况下,哪种设计模式与D有关?
它是一个作曲家,因为它是由A,B,C组成的?或者是代理还是构建者?因为它只是一个代理,真正的读/写是由RealClientInterface完成的?
我需要这些信息,以便为我的D类提供一个好的名称,以及文档的目的。
struct A
{
//Some data
};
我继承了一个长期维护代码库,它有两个截然不同的iPhone和iPad视图。这创建了一个大的UIViewController类,它已经膨胀到超过1k行代码,是ISIPAD语句、私有变量、属性、iBOutlet/动作的混搭,例如,对一个实现使用UITableView,对另一个实现使用完全不同的东西。
更糟糕的是,当前的软件模式依赖于子类化。
目前我们看起来是这样的:
ParentVC (both iphone/ipad God class also has xib(xib~ipad) + iboutlets/actions)
| | |
C
我正在创建索引与一些数据从数据库。代码如下:
// Load the documents into the index
try {
// $documents holds all the documents
$solr->addDocuments($documents);
$solr->commit();
$solr->optimize();
} catch (Exception $e) {
print
我有一个函数,它返回一个名为Rule的对象。其结构如下:
public class Rule
{
public bool ShouldLogInADatabase {get;set;}
public bool ShouldLogInBDatabase {get;set;}
public bool ShouldShowNotification {get;set;}
public bool ShouldSendEmail {get;set;}
}
例如,我有以下代码:
var rule = ExecuteRule(); //此方法返回Rule。
现在,我必须运行一
我有一个我想以装饰器/适配器的方式扩展功能的类,只是我不希望我的扩展类必须知道它正在扩展的类的任何种类,并且我不想为我想要扩展的每种对象类型编写一个新的类。但是,我想要扩展的所有对象都共享一个公共基类Team。这听起来使用泛型的时机已经成熟,所以我最初的想法是: public class TournamentTeam<T> : T
where T : Team
{
private int mSeed;
public TournamentTeam(T team, int seed)
: base(team)
{
/*
为什么组合要遵循“开放扩展,接近修改”的原则?
我理解:如果你想在类中添加功能,你只需编写新的代码,并使用组合来获得该代码。
但是,你只是修改了你有一个组合的代码吗?因为您要将组合添加到该代码中,所以您需要修改该代码。
示例:
之前,它是这样的:
public class Example{
public void Walk(){
//walking
}
}
在此之后:
public class Example{
RunClass r = new RunClass(); // I add this
public void Walk(){
//walking
}
pu
鉴于以下课程:
public class CardGame extends Game {
private CardDeck[] cardDecks;
public CardGame(int numCardDecks) {
super();
cardDecks = new CardDeck[numCardDecks];
for (int i=0; i < numCardDecks; i ++) {
cardDecks[i] = new CardDeck();
}
}
}
哪种UM
我的API有不同的参数。根据这些,我有两个稍微不同的过程。但产量几乎相同。我应该使用构建器模式吗?
例如,假设有不同的查询参数A和B:
// For case A:
if (A){
funX(A);
funY();
funZ();
}
// For case B :
if(B){
funW(B);
funX(B);
funY();
funZ();
}
注意:这里的过程有点复杂。如第三方api调用、过滤、排序、复杂计算等。